链表基本知识点总结

链表分单向,双向,循环三种。
链表的基本操作包括:建表(头插,尾插),结点插入,删除,链表的合并,拆分等。
链表是由节点组成的,每个节点struct,内部有数据域,指针域。
1.建表:
头插法和尾插法:
头插法:
操作时,head头结点,不断用head开辟空间,然后插入到头部

head=(LinkList)malloc(sizeof(Node));
scanf("%d",&head->data);
(*head)->next=NULL;//建立带头节点的表
(*head)->next=cur;//插入
cur=head;//更新当前节点

尾插法:

操作时,head头结点,newtmp新节点,cur当前节点,不断用newtmp开辟空间,然后插入到尾部,更新当前节点即可

newtmp=(LinkList)malloc(sizeof(Node));
scanf("%d",&newtmp->data);
newtmp->next=NULL;
cur->next=newtmp;//起到一个连线的作用
cur=newtmp;//最后一个节点(元素)

2.节点插入
指针域的处理,

pnew=(Node *)malloc(sizeof(Node));//新节点
scanf("%d",&pnew->data);
//ptail原节点,插到他后面
pnew->next=ptail->next;//起到一个连线的作用
ptail->next=pnew;//起到一个连线的作用

删除,合并,拆分同理。

猜你喜欢

转载自blog.csdn.net/qq_38205273/article/details/108837163