单链表的基本操作
2018-02-24 本文已影响0人
宄乇
插入方式——头插法:
![](https://img.haomeiwen.com/i10297212/290220c802d6a5ff.png)
插入方式——尾插法:
![](https://img.haomeiwen.com/i10297212/6631a9fe5cfb804b.png)
查找运算——按序号查找:在链表中,即使知道被访问结点的序号i,也不能像顺序表中那么直接按序号i访问结点,而只能从链表的头指针除法,顺着链域next逐个结点往下搜索,直至搜索到第i个结点为止。链表不是随机存取结构,只能顺序存取。
![](https://img.haomeiwen.com/i10297212/4691a428ad1dc6ec.png)
查找运算——按数值查找:
![](https://img.haomeiwen.com/i10297212/7c26b68b81bc0fd3.png)
删除结点:将被删除结点的前驱指针连接被删除结点的后继指针
![](https://img.haomeiwen.com/i10297212/45491aa9bf1036c6.png)
循环链表
表中尾结点的指针域指向头结点,形成一个环。从表中任意一个点出发都可以找到表中其他的结点。
![](https://img.haomeiwen.com/i10297212/e33f7293273d8a97.png)
循环链表的操作和线性链表的操作基本一致,但循环链表中没有NULL指针,故遍历操作时,终止条件不再是判断p或p.next是否为空,而是判断他们是否等于某一指定指针,如头指针或尾指针。