首页 百科知识 链表插入和删除算法

链表插入和删除算法

时间:2022-10-17 百科知识 版权反馈
【摘要】:下面是一个使用链表将数组的各个元素插入到链表中,并使这些元素在链表中以升序排列的程序。程序中cp是访问链表当前结点的指针变量,插入一个新结点时,cp总是从链表头开始查找插入位置。程序中对插入的结点为链表的首结点时进行专门处理。没有检查由malloc()和realloc()提供的返回代码。如果这两个函数中的任意一个返回一个NULL指针,则表明内存分配没有成功,需要我们进行错误处理。

10.1.5 链表应用程序举例

下面是一个使用链表将数组的各个元素插入到链表中,并使这些元素在链表中以升序排列的程序。程序中cp是访问链表当前结点的指针变量,插入一个新结点时,cp总是从链表头开始查找插入位置。当插入的元素值大于当前结点值,而小于当前结点的下一个结点的数据值(用cp−〉next−〉info表示)时,将新结点插入在当前访问结点的后面;否则,向后移动链表的当前访问结点的指针(cp),继续查找插入位置。程序中对插入的结点为链表的首结点时进行专门处理。

例10-1 使用单向链表,把一个数组的各个元素插入到链表中,并以升序排列。

程序如下:

img726

img727

运行结果:

  17

  25

  35

  46

  54

  66

  78

  80

常见的编程错误10.1

img728 没有检查由malloc()和realloc()提供的返回代码。如果这两个函数中的任意一个返回一个NULL指针,则表明内存分配没有成功,需要我们进行错误处理。

img729 从动态创建的栈、队列和链表添加或删除结构时,没有正确地更新所有相关的指针地址

img730 在空间不再需要时,忘记释放前面分配的存储空间。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈