尾插法初始化单链表销毁单链表(2)_第1页
尾插法初始化单链表销毁单链表(2)_第2页
尾插法初始化单链表销毁单链表(2)_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

接上回书 这货不是评书 这货不是评书 一个新的事物的出现必然就意味着旧事 物有其缺陷和不适应性 这一伟大的哲学原理在 DS 中一样成立 头插法虽然简单 可是生成的链表中结点的次序和原数组的顺序却是相反的 此时 尾插法的出现就解决了这一问题 g z1 R 8 u3 l4 K r 使其始终指向当时链表的尾节点 void CreateListR LinkList s 是指向新结点的指针 r 是 指向当时链表尾节点的指针 d0 M E m L6 2 D L LinkList malloc sizeof LinkList 创建头结点 r L r 始终指向尾节点 开始时指向 头结点 M3 A N9 w o1 4 O6 j for int i 0 idata a i r next s 将 s 插入 r 之后 I1 2 s P z 5 X 3 G0 c O C O r s 7 l Z u u6 Y r next NULL 尾节点 next 域置为 NULL 5 O0 j x A P 还是要说两句 尾插法与头插法最大的不同就在于 头插法只需要一个结点 指针 J D x T7 V5 F 而尾插法需要两个结点指针 不包含指向头结点的指针 多的那一个指针就 是 指向当时链表尾节点的尾指针 先记住这个不同点 然后我们再来看看代码 部分 我想和头插法相同的部分就不再重复了 r L 这一句如果大家真正掌握了上 述的 Q V A R4 y I 7 M 话 我想写出来是不费吹灰之力的 没有吸收结点时 尾指针肯定是要指向 头结7 F J V i U D 点的 M F 7 T7 B Z r next s 的意思不就是将 s 所指向的结点作为 r 所指向的结点的后继么 可不要小看了这一句噢 看似简单 却有深意滴 我们可以这样想 尾 插法 就是新吸收的结点作为当时链表的尾节点 而尾指针就是指向当时链表的尾 节点的 W n p G P X8 G2 D Q A6 l X S 2 初始化单链表 该运算建立一个空的单链表 什么叫一个空单链表 擦 就是一个头结 点 8 q e t q3 3 b Z 2 void InitList Linklist L next NULL J q T3 x2 E O s M A n while q NULL 6 x u h Z K free p p q q p next R7 B5 l3 R8 a L8 b9 C free p 此时 q 为 NULL p 指向尾节点 释放它 q p P3 b1 o1 F g6 K Y Z a7 j x1 l 释放前 p 指向头结点 q 指向开始结点 当开始结点不为空时 就执行 释放过程 先释放头结点 然后将 p q 都后移 依次释放 因为 q 始终是 p 的后继 所以一定是 p 留到了最后 这孩子真不容易 因此 最后就释放 p9 S A I p R 就可以了 1 i q8 9 p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论