读书人

数据结构(五)之单链表的操作(补充)

发布时间: 2013-10-08 17:02:59 作者: rapoo

数据结构(5)之单链表的操作(补充)
1 前言

上次我们讲到单链表的存储和一些简单的算法,今天我们来学习一下单链表的初始化和销毁操作。

2 详述2.1 单链表的整表创建

思路:

声明一结点p和计数器变量i;

初始化一空链表L;

让L的头结点的指针指向NULL,即建立一个带头结点的单链表;

循环:

生成一新结点赋值给p;

随机生成一数字赋值给p的数据域p->data;

将p插入到头结点与前一新结点之间。

如图:

数据结构(五)之单链表的操作(补充)

实现代码如下:

r = p图解:

数据结构(五)之单链表的操作(补充)

2.2 单链表的整表删除

思路:

声明一结点p和q;

将第一个结点赋值给p;

循环

将下一个结点赋值给q;

释放p;

将q赋值给p。

实现算法:

2.4 其它类型的链表2.4.1 静态链表

有些高级语言没有指针,这时候我们要让数组的元素由两个数据域组成,data和cur,数据域data用来存放数据元素;游标cur相当于存放单链表的next指针,存放该元素的后继在数组中的下标。我们把这种数组描述的链表叫做静态链表。

数据结构(五)之单链表的操作(补充)

2.4.2 循环链表

将单链表中终端结点的指针由空指针改为指向头结点,就使得整个单链表形成一个环。这种头尾相接的单链表成为单循环链表,简称循环链表(cirular linked list)。

数据结构(五)之单链表的操作(补充)

2.4.3 双向链表

双向链表(double linked list)是在单链表中的每个结点中,再设置一个指向其前驱结点的指针域。

数据结构(五)之单链表的操作(补充)

2.5 总结

用下图简单的来介绍一下线性表部分的内容:

数据结构(五)之单链表的操作(补充)3 结语

以上是所有内容,希望对大家有所帮助。

读书人网 >移动开发

热点推荐