用图像和代码理解链表的头插法和尾插法(单链表)
2024-01-02 22:24:40
? ? ? ? 我们经常会遇到链表创建的问题,我们有头插法和尾插法;
头插法:显然,我们就是将新结点逐一地插入head前;
特点:我们顺序地输入数据存入结点中,最后由于head在后面,所以链表要从head开始读取;
图像:
核心代码:
for (i=0;i<n;i++)
{
? ? ? ? new*newp=(newnode*)malloc(sizeof(newnode));
? ? ? ? scanf("%d",&p->data);
? ? ? ? newp->next=head;
? ? ? ? head=newp;
}
head=newp;
?尾插法:尾插法就是把新结点依次连接在最后;
?特点:顺序输入数据,顺序读取,输出数据;
?图像:
核心代码:
head=p=newp=NULL;
for (i=0;i<n;i++)
{
? ? ? ? newnode* newp=(newnode*)malloc(sizeof(newnode));
? ? ? ? p->next=newp;
? ? ? ? p=newp;
}
最后输出就好;
辨析:(这里可以结合图片理解)
?在头插法中只有newp,head;但是在尾插法中有newp,head,p;
其中不一样的就是p;
因为在头插法中head是链表头的同时也可以作为移动的指针,所以没必要用另外的移动指针p;但是在尾插法中head是链表头,不可以移动,所以需要一个另外的移动指针p;
文章来源:https://blog.csdn.net/2303_79380171/article/details/135315891
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!