欢迎来到天天文库
浏览记录
ID:53874215
大小:21.00 KB
页数:3页
时间:2020-04-10
《尾插法初始化单链表销毁单链表(2).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、接上回书…………这货不是评书,这货不是评书。一个新的事物的出现必然就意味着旧事物有其缺陷和不适应性,这一伟大的哲学原理在DS中一样成立…………头插法虽然简单,2O:q8t8g2p$@6J可是生成的链表中结点的次序和原数组的顺序却是相反的。#f3m9x.Z2:f4i"S'M此时,尾插法的出现就解决了这一问题。$g&h$]'k+?0
2、(I&N/r0u,_1.尾插法建表:该方法是将新结点插到当时链表的表尾上,为此,必须增加一个尾指针r,1v8"B;z1R%]8u3l4};K;r 使其始终指向当时链表的尾节
3、点。 N6l8o:P9h4s0b8X voidCreateListR(LinkList*&L,inta[ ],intn)7e+R1Y&i)p+X(i*f$q0c {#l"x.}6
4、+v%T LinkList*s,*r; //s是指向新结点的指针,r是指向当时链表尾节点的指针.d0M/E)m*L6
5、2].D L=(LinkList*)mal
6、loc(sizeof(LinkList)); //创建头结点.k)i3U6n2w)d r=L; //*r始终指向尾节点,开始时指向头结点 M3A#N9w/o1
7、4O6j for(inti=0;i8、nkList*)malloc(sizeof(LinkList));4e!M-K%Y([ s->data=a[i];1g*U*T(_0E#e-h+T r->next=s; //将*s插入*r之后"I1]2s/~+P,z*[5X/]3G0c(O.C;O r=s;.l;l5Q(C)J-R5[(Y }7l-Z u9、.u6?!Y r->next=NULL; //尾节点next域置为NULL4G"'w(o9z(A }5O0j;x;^:A*P 还是要说两句,尾插法与头插法最大的不同就在于,头插法只需要一个结点指针,:J D(x&E3j7`*_5i;T7V5F 而尾插法需要两个结点指针(不包含指向头结点的指针),多的那一个指针就是5s,e!H9j8c1Y"V:{ 10、 指向当时链表尾节点的尾指针,先记住这个不同点,然后我们再来看看代码部分。'J&i:g,~8b!x!x-s @/v4Y9v'B9] 我想和头插法相同的部分就不再重复了,r=L;这一句如果大家真正掌握了上述的.Q%V+A/R4y(I'~7M 话,我想写出来是不费吹灰之力的,没有吸收结点时,尾指针肯定是要指向头结7],F J.V#i:U;D 点的,;M'F-]7T7B#Z'v1t%H-r0u6K1[ 11、 r->next=s的意思不就是将s所指向的结点作为r所指向的结点的后继么?&y2[2E3t$V3l++~0y7A 这是什么?这不就是尾插法初衷么?尾插法不就是希望新加入的结点时作为当时9Q&12、:13、0L4c1L.F;P&b!U/A;w+l 链表的尾节点么?所以,你用尾插法建表却写不出这句,你对得起XXX么,对的起么4W9i2U)J)e"K4_ 对得起么!!! (这不是咆哮体……)*u&K2Q0k:e)C"@$P,H0y-J4#k&14、q+X r=s;可不要小看了这一句噢,看似简单,却有深意滴,我们可以这样想,尾插法.p&l/t/B;B2z*]2];q 就是新吸收的结点作为当时链表的尾节点,而尾指针就是指向
8、nkList*)malloc(sizeof(LinkList));4e!M-K%Y([ s->data=a[i];1g*U*T(_0E#e-h+T r->next=s; //将*s插入*r之后"I1]2s/~+P,z*[5X/]3G0c(O.C;O r=s;.l;l5Q(C)J-R5[(Y }7l-Z u
9、.u6?!Y r->next=NULL; //尾节点next域置为NULL4G"'w(o9z(A }5O0j;x;^:A*P 还是要说两句,尾插法与头插法最大的不同就在于,头插法只需要一个结点指针,:J D(x&E3j7`*_5i;T7V5F 而尾插法需要两个结点指针(不包含指向头结点的指针),多的那一个指针就是5s,e!H9j8c1Y"V:{
10、 指向当时链表尾节点的尾指针,先记住这个不同点,然后我们再来看看代码部分。'J&i:g,~8b!x!x-s @/v4Y9v'B9] 我想和头插法相同的部分就不再重复了,r=L;这一句如果大家真正掌握了上述的.Q%V+A/R4y(I'~7M 话,我想写出来是不费吹灰之力的,没有吸收结点时,尾指针肯定是要指向头结7],F J.V#i:U;D 点的,;M'F-]7T7B#Z'v1t%H-r0u6K1[
11、 r->next=s的意思不就是将s所指向的结点作为r所指向的结点的后继么?&y2[2E3t$V3l++~0y7A 这是什么?这不就是尾插法初衷么?尾插法不就是希望新加入的结点时作为当时9Q&
12、:
13、0L4c1L.F;P&b!U/A;w+l 链表的尾节点么?所以,你用尾插法建表却写不出这句,你对得起XXX么,对的起么4W9i2U)J)e"K4_ 对得起么!!! (这不是咆哮体……)*u&K2Q0k:e)C"@$P,H0y-J4#k&
14、q+X r=s;可不要小看了这一句噢,看似简单,却有深意滴,我们可以这样想,尾插法.p&l/t/B;B2z*]2];q 就是新吸收的结点作为当时链表的尾节点,而尾指针就是指向
此文档下载收益归作者所有