位置:- 正文

9-数据结构-单链表头插法尾插法(数据结构的单链表)

编辑:rootadmin
9-数据结构-单链表头插法尾插法

推荐整理分享9-数据结构-单链表头插法尾插法(数据结构的单链表),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:数据结构的单链表,数据结构单链表和双链表区别,数据结构课程设计单链表,数据结构单链表基本操作,数据结构单链表算法流程图,数据结构单链表和双链表区别,数据结构单链表算法流程图,数据结构单链表算法流程图,内容如对您有帮助,希望把文章链接给更多的朋友!

问题:

单链表头插法与尾插法

9-数据结构-单链表头插法尾插法(数据结构的单链表)

思路:

头插法,类似于前面的在末位置前,插入元素。最后创建完为逆序;尾插法,则是定一个尾指针r,每次接入新的结点s,随后r=s(即r往后移位)

详解:

头插法:

先初始化链表l——l=(linklist)malloc(sizeof(lnode));  l->next=NULL;定义一个暂存结点用来一直插入元素,接进链中。——lnode*s。随后定义插入数据x进入循环,当输入x=9999时,循环结束初始化s随后进行后插操作,s->data=x;s->next=l->next;l->next=s;之后再输入x这样创建的链表就是逆序的链表了,可以1用来做逆序题目;

尾插法:

先初始化链表l——l=(linklist)malloc(sizeof(lnode));  l->next=NULL;定义一个暂存结点用来一直插入元素,接进链中。——lnode*s。定义一个尾指针r,用来表示链表的尾部让尾指针r=l,就算真正接进l链表中了。随后一样的操作输入x,进入循环循环中,初始化s给s数据域赋值——s->data=x;让尾指针r指向s,连接起来——r->next=s;随后移动r尾指针的位置到s结点中——r=s;达到位移目的。

代码如下:

头插法:

linklist tcreatlist(linklist &l,int &len){l=(linklist)malloc(sizeof(lnode));l->next=NULL;lnode *s;int x;printf("请输入所需添加的数据,输入9999结束输入\n");scanf("%d",&x);while(x!=9999){len++;s=(lnode*)malloc(sizeof(lnode));s->data=x;s->next=l->next;l->next=s;scanf("%d",&x);} return l;}

尾插法:

linklist wcreatlist(linklist &l,int &len)//尾插法{l=(linklist)malloc(sizeof(lnode));l->next=NULL;lnode *s;lnode *r=l;int x;printf("请输入所需添加的数据\n");scanf("%d",&x);while(x!=9999){len++;//计算链表长度 s=(lnode*)malloc(sizeof(lnode));s->data=x;r->next=s;r=s;scanf("%d",&x);} r->next=NULL; return l;}
本文链接地址:https://www.jiuchutong.com/zhishi/299643.html 转载请保留说明!
下一篇链接:https://www.jiuchutong.com/zhishi/299644.html
免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络