链表的分类:
单链表:
双链表:
每一个节点有两个指针域
循环链表:
能通过任何一个节点找到其它所有的结点
非循环链表:
算法:
遍历
查找
清空
销毁
求长度
排序
删除节点
插入节点
下面举个例子
例1:
对于程序中的一些函数名词含义,上篇博客已经说了,这次就不说了,总之,每个函数都有其相应的功能,最终将上面说的算法的各个功能都实现了。
本程序的功能是,输入要生成的链表的节点个数len(生成的链表存放的是整数),然后依次输入每个节点的内容,之后选择位置插入你想要插入的元素,紧接着判断链表是否为空(当然,肯定不为空了),再然后是选择删除第几个节点,最后输出余下元素的内容并输出原来链表和现在链表的长度,并将该链表的各个节点值进行排序后输出
给出一个输出的结果样例
输出结果为:
链表的优缺点
优点:
插入删除元素效率高
不需要一个连续的很大的内存
缺点:
查找某个位置的元素效率低
相对比而言,数组的优缺点是
优点:
存取速度快
缺点:
需要一个连续的很大是内存
插入和删除元素的效率很低
确定一个链表需要一个参数(头指针),因为我们通过头指针可以推算出链表的其他参数
【所有代码均在windows系统下C-Free5.0下运行通过】
(如有错误,敬请指正)
原文:http://blog.csdn.net/u012421456/article/details/29631165