阅读本文大概需要6.66分钟
单链表的各种操作
大家好,我是,今天给大家带来的是单链表的实现。主要包含了如何创建一个单链表、如何向链表中添加元素、如何删除某个元素。
主要内容
单链表的创建
向链表中添加元素
删除链表中的某个元素;
实现步骤
接着文章中介绍的单链表元素结构,如下所示:
1.创建链表
创建链表其实就是初始化一个链表的操作,初始化一个带头节点的链表.
Link*Link::CreateNOde(intdata)//创建一个结点{Link*p=newLink;p-gt;data=data;returnp;}
上述创建了一个头指针,方便操作,
2.插入元素
插入节点其实就是改变该节点和相邻节点的指针问题:
这样链表就创建好了,直接可以通过返回值找到创建的节点地址。
创建好之后可以测试下输出,看看是否正确:
输出函数:
遍历链表的过程中,需要借助头节点来实现查找
测试
这里为了方便,循环插入10个元素进行测试:
输出结果:
可以看到,输出数字为1,和我们创建的时候传递进去的元素类型一致,说明创建成功。不过这里需要注意,对节点内存的释放,不需要了需要释放,因为这里后面还有操作,所系暂且不释放。
至于为啥顺序是反的,因为我插入数据的时候采用头插法,即新插入的节点总是在之前节点的前面,不过也可以修改成尾插法,很简单。
3.删除某个节点
删除之前需要判断节点的状态,以及对头节点各种判断,删除实际上是修改了元素的next域,使其没有了指向:
4.节点销毁
思路:先定义一个临时节点,让临时节点指针指向头节点,然后修改头节点指针,使其指向下一个节点,接着删除临时节点所指向的节点即可,剩下的依次循环。
销毁节点
后记
头条号分享Linux,Windows下C/C++,编程相关的技术,坚持每天进行技术支出,希望大家能够喜欢。
你的