数据结构(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 结语
以上是所有内容,希望对大家有所帮助。