数据结构—链表-单链表基本操作实现

来源:互联网 发布:sql查询分析器解析 编辑:程序博客网 时间:2024/06/05 08:58

这里写图片描述

初始化线性表
这里写图片描述
L是定义的一个指针
初始化线性表的算法就是
按引用指针的方法,将L引用到函数中,然后在函数中为L指针赋予一片内存,即头节点,然后让L->next指向NULL;

销毁线性表
这里写图片描述
在算法中,定义两个指针,*pre和*p;
pre指针指向头节点,p指针指向头节点的下一个节点。
如果我们删除了pre指向的节点的话,我们要用另一个指针记住他的下一个节点,如果没有p指针,我们就将找不到链表了,链表头就丢失了。
那么我们如何销毁节点呢,我们用free或者delete函数,就释放了这个节点的内存了,然后我们在把pre指向p此时,又构建了一个新的头节点,在将p=p->next;又构建了一个新的下一个节点,如此循环。直到p指向NULL。
此时整个链表只剩下pre指向的最后一个节点了。
我们将他释放掉,这个链表就销毁了。
两个指针相随的技术。

判断线性表是否为空表。
这里写图片描述
关键在于头节点的指针域指向的什么,如指向NULL,那么这个链表就是一个空链表,如果指针域指向了另一个节点,那么这个链表就不是空链表。

求线性表的长度
这里写图片描述

头节点是不算的,因为头节点不保存数据,此时线性表的长度的逻辑和物理长度是统一的。

输出线性表
这里写图片描述

求线性表L中指定位置的某个数据元素
这里写图片描述

按元素值查找
这里写图片描述
p当然也可以指向L 此时i=0

插入数据元素 节点
这里写图片描述
核心是先找到i-1个节点再进行操作

删除数据元素
这里写图片描述

0 0
原创粉丝点击