位置: IT常识 - 正文
推荐整理分享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;}上一篇:图解Nginx,系统架构演变 + Nginx反向代理与负载均衡(nginx gui)
下一篇:HTML+CSS简单漫画网页设计成品 蜡笔小新3页 大学生个人HTML网页制作作品(html动画教程)
友情链接: 武汉网站建设