链表作为动态数据结构之一,对其掌握很有必要,链表主要作用有两个:一是用来代替数组元素个数不确定的数组,二是在数据库管理中对磁盘进行存储操作。链表分为单链表和双链表,单链表的末尾结点的指针赋值为0,而双链表的头部和末尾指针的结点均赋值为0。下面主要介绍单链表的一些操作,双链表与其操作类似。对于单链表,最基本的操作有链表的建立、链表结点插入、链表结点删除和链表结点显示。
- 链表建立:建立链表之前有如下的准备工作
- 定义链表的结点类型:可以是结构体或者某类的对象;
- 定义链表的头指针head,并进行初始化为0
- 定义两个工作指针p1和p2,用来将结点连接,并其定义结点数n=0.
下面就可以进行链表的建立:
- n=n+1;p1=p2=new stu;head=p1//即n=1,建立第一个结点
- p1=new stu;p2->next=p1;p2=p1;//通过p2将结点连接起来,后面建立结点重复这个步骤就好
- p2->next=0;//尾结点
- 链表结点插入:设插入的结点指针为p0,根据插入的位置分为三种情况。
- 插入头部结点之前:head=p0;p0->next=p1;
- 插入中间部分:p2->next=p0;p0->next=p1;
- 插入尾部:p1->next=p0;p0->next=0;
- 链表结点删除:删除过程中需要对结点遍历,遍历的主要程序代码p2=p1;p1