内存四区
1、正文段或者代码段: 程序运行时的代码, 只读的
2、数据段:
未初始化数据段: 存储未初始化的静态变量或者全局变量, 系统会自动初始化为0
初始化数据段: 存储初始化的静态变量或者全局变量
常量区: 常量 、const 修饰的静态变量和全局变量
3、堆: 程序员自己进行管理的,使用时需要申请,使用完需要释放内存
4、栈:局部变量、形参、保护现场 ps:栈区不会自动初始化的
创建链表
在链表的头部插入结点建立单链表
struct node*head = NULL,*pnew = NULL,
if(head == NULL)
{
head = pnew;
}
else
{pnew->next = head;
head = pnew
}
根据节点序号插入
头插:
pnew->next = head;
head = pnew;
中间插入:
首先找到插入位置前一个节点的地址,使用指针保存
pnew->next = p->next;
p->next =pnew
尾部插入:
直接找到最后一个节点的地址,使用指针变量p保存
p->next = pnew;
根据节点序号删除操作
头删:
pdel = head;
head = head->next;
free(pdel)
p->next = pdel->next
free(pdel)
反转操作:将旧链表中的节点,从第一个开始,一个一个的拿下来,通过头插法加入新的链表
1.保存旧链表第一个节点的地址
2.将第一个节点从旧链表中移下来
3.头插法加入新的链表