3.3线性链表概要.ppt

3.3线性链表概要

在线性链表中删除一个元素后,不需要移动表的数据元素,只需改 变被删除元素所在结点的前一个结点的指针域即可。另外,由于可利用 栈是用于收集计算机中所有的空闲结点,因此,当从线性链表中删除一 个元素后,该元素的存储结点就变为空闲,应将该空闲结点送回到可利 用栈。 算法2.18 在头指针为head的线性链表中删除包含元素x的结点。 三、循环链表 线性链表存在的缺点 在线性链表中,插入与删除的运算虽然比较方便,但还存在一个问题:在运算过程中对于空表与对第一个结点的处理必须单独考虑,因此空表与非空表的运算不统一。 为了克服线性链表的这个缺点,可以采用另一种链接方式,即循环链表(circular linked list)的结构。 循环链表的结构特点 在循环链表中增加了一个表头结点,其数据域为任意或者根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。 循环链表中最后一个结点的指针域不是空,而是指向表头结点。即在循环链表中,所有结点的指针构成了一个环状链。 线性链表存在的结构示意图 循环链表的优点 在循环链表中,只要指出表中任何一个结点的位置,就可以从它出发访问到表中其他所有的结点;而线性单链表则做不到这一点。

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档