数据结构专题(二):2.4链表的插入操作,头插法
2021/12/29 23:09:35
本文主要是介绍数据结构专题(二):2.4链表的插入操作,头插法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- 头插法一:
思想如下图:
如下代码:
///头插法建立单链表 LinkListNode *Create_Front_Lklist(ElemType arr[],int length) { LinkListNode *pHead,*p,*q; int i; pHead = (LinkListNode *)malloc(sizeof(LinkListNode)); pHead->pNext = NULL; q = pHead->pNext; //头插的时候,必须逆序遍历顺序表 for(i= length - 1;i>=0;i--) { p = (LinkListNode *)malloc(sizeof(LinkListNode)); p->data = arr[i]; p->pNext = q; //使得新加入的结点传入了上一个结点 pHead->pNext = p; //头结点指向了当前的新加入结点 q = pHead->pNext; //让q指向当前的结点 } return pHead; }
2.头插法二:
思想:如下图
在这里插入图片描述
如下代码:
///头插法二: LinkListNode *Create_Front2_LkList(ElemType arr[],int length) { LinkListNode *pHead,*p,*q; //p是新加入结点,q是当前结点 int i; q = NULL; for(i = length-1;i>=0;i--) { p = (LinkListNode *)malloc(sizeof(LinkListNode)); p->data = arr[i]; p->pNext = q; q = p; } pHead = (LinkListNode *)malloc(sizeof(LinkListNode)); pHead->pNext = q; return pHead; }
3.头插法三:
思想如下图:
如下代码:
///头插法三: LinkListNode *Create_Front3_LkList(ElemType arr[],int length) { LinkListNode *pHead,p; int i; pHead = (LinkListNode *)malloc(sizeof(LinkListNode)); pHead->pNext = NULL; for(i = length-1;i>=0;i--) { p = (LinkListNode *)malloc(sizeof(LinkListNode)); p->data = arr[i]; p->pNext = pHead = pNext; pHead->pNext = p; } //之所以我们的方法三可以节省方法一中的一个变量q //原因是:pHead不发生变化,而pHead中的pNext始终作为当前结点的指针 return pHead; }
这篇关于数据结构专题(二):2.4链表的插入操作,头插法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南