当前位置:   article > 正文

链表的类型---第八期_node->next = head->next; head->next = node; 怎么理解

node->next = head->next; head->next = node; 怎么理解

链表分为

1、单向或者双向 

 2、带头或者不带头(哨兵位的头节点,不存储有效数据)

单讲一下

对于单链表来说,哨兵位就是一个带头链表,有个专门的链表头结点,并不存储数据,链表的所有操作都不涉及头结点的操作,因此在插入删除节点的时候不需要判断链表是否为NULL,头插直接就往哨兵位后边插,尾插就遍历到末尾插
没有哨兵位其实也就是不带头,插入删除数据的时候需要判断链表是否为NULL,

加入要给链表插入一个数据
带头的:  
  头插:newnode->next = head->next; head->next = newnode;
  尾插:cur = head;  while(cur->next) cur=cur->next;   cur->next = newnode;
不带头的:需要传入二级指针,也就是头结点指针变量地址
  头插:newnode->next = *head;  *head = newnode;
  尾插:if(head==null)  *head=newnode;   

else while(head->next) *head=*head->next;  head->next = newnode

3、循环或者非循环

 一共有八种链表结构:

 

其中最有有价值的是:

1、无头单向非循环链表结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构,比如哈希桶、图的邻接表等等。另外这种结构在笔试面试中出现很多。

2、带头双向循环链表:结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势,实现反而简单了,后面我们代码实现了就知道了。

实现比之前学的无头单向非循环更简单!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/585991
推荐阅读
相关标签
  

闽ICP备14008679号