c链表

Posted on 2023-09-04 00:21  牛man  阅读(12)  评论(0编辑  收藏  举报

数组的缺陷

数组是一块连续的静态存储空间,如果要插入或者删除某一个元素,数组的其他元素就需要大量的移动。

 链表
链表是由多个节点组成,每个节点有两个域,数据域用来保存数据,指针域用来保存下一个节点的地址。链表是非连续的。

拿到链表的第一个节点相当于拿到整个链表

 链表的优点:插入删除元素不需要移动元素,只需要修改指针

链表的缺点: 1.查找元素效率相对于数组效率低

                    2.相对于数组多了指针域的空间开销

 

链表的分类

静态链表,动态链表

单项链表,双向链表,循环链表,单项循环,双向循环

单向链表

单项循环:最后一个节点的指针域指向第一个节点

 

 双向链表,双向链表有两个指针域,前驱和后继,前驱指向前一个节点,后继指向后一个节点

双向循环:最后一个节点的后继指向第一个元素的前驱

 带头和不带头节点

带头节点:第一个节点是头节点,固定不动,头节点不保存任何数据

不带头的节点:需要判断插入的节点是不是第一个节点,如果是需要特殊处理