十九年专注考研辅导
因为专注,所以出色

0371-60904200 全国咨询热线服务
您所在的位置: 首页 > 考研备考 > 正文
考研备考

2023考研计算机数据结构-基础阶段(3月)基础定义解释:尾

来源:天任考研  |  更新时间:2022-03-25 16:49:38  |  关键词:

  •  
  •  
  •  

2023考研计算机数据结构-基础阶段(3月)基础定义解释:尾

尾插法建表:该方法是将新结点插到当时链表的表尾上,为此,必须增加一个尾指针 r ,

使其始终指向当时链表的尾节点。

void CreateListR (LinkList *&L,int a [ ],int n )

{

LinkList *s,*r; // s 是指向新结点的指针,r 是指向当时链表尾节点的指针

L=(LinkList *) malloc (sizeof(LinkList)); // 创建头结点

r=L; // *r 始终指向尾节点,开始时指向头结点

for (int i=0;i

{

s=(LinkList *) malloc (sizeof(LinkList));

s->data=a [ i ];

r->next=s; // 将*s插入*r之后

r=s;

}

r->next=NULL; // 尾节点next域置为NULL

}

尾插法与头插法最大的不同就在于,头插法只需要一个结点指针,而尾插法需要两个结点指针(不包含指向头结点的指针),多的那一个指针就是指向当时链表尾节点的尾指针,先记住这个不同点,然后我们再来看看代码部分。

和头插法相同的部分就不再重复了, r=L;这一句如果大家真正掌握了上述的话,我想写出来是不费吹灰之力的,没有吸收结点时,尾指针肯定是要指向头结点的,

r->next=s的意思不就是将 s 所指向的结点作为 r 所指向的结点的后继么?这是什么?这不就是尾插法初衷么?尾插法不就是希望新加入的结点时作为当时链表的尾节点么?

r=s;可不要小看了这一句噢,看似简单,却有深意滴,我们可以这样想,尾插法就是新吸收的结点作为当时链表的尾节点,而尾指针就是指向当时链表的尾节点的,那上一步中已经将 s 所指向的结点作为了当时链表的尾节点,那么现在是不是就应该让尾指针指向它呢?那是必须的。


免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用,不涉及商业盈利目的。如涉及版权问题,请联系本站管理员予以更改或删除。邮箱:zzqihangpx@163.com 电话:0371-60903400
天任考研微信群

扫码加入2026考研群
获取考研咨询一对一服务


热报课程

报考信息


备考指南


报名咨询电话:0371-60904200
Copyright©2006-2020  郑州市天任教育科技有限公司 豫ICP备2024092498号

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用,不涉及商业盈利目的。如涉及版权问题,请联系本站管理员予以更改或删除。电话:0371-60904200