2单链表实验答案

2单链表实验答案

ID:31614129

大小:54.93 KB

页数:6页

时间:2019-01-16

2单链表实验答案_第1页
2单链表实验答案_第2页
2单链表实验答案_第3页
2单链表实验答案_第4页
2单链表实验答案_第5页
资源描述:

《2单链表实验答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、上机实验题1.创建一个单链表L(包含头结点),写一算法将其倒置,并将对应的程序调试运行通过。要求:链表的长度可以由用户自行确定,不要倒置头结点。#include#include#defineOVERFLOW-2#defineOK1typedefintElemType;typedefintStatus;typedefstructLNode{ElemTypedata;structLNode*next;JLNode,*LinkList;StatusReverseLinklist(LinkList&L

2、){〃倒置单链表时不倒置头结点LNode兴p,兴q;p=L->next->next;/*p指向链表的开始结点Z后的结点*/L->next->next=NULL;〃将原链表一分为二,一个是用头结点和〃链表的开始结点组成新链表,另外一个是原链表的剩余部分while(p){q=p;〃每次从第二个链表中取出开始结点,其地址用q纪录p=p->next;q->next=L->next;//将q指向结点插入到新链表的头结点Z后L->next=q;}returnOK;StatusInitLinklist(LinkList&L){〃初始化单链表LN

3、ode*p=(LinkList)malloc(sizeof(LNode));if(!p)exit(OVERFLOW);L二p;p->next二NULL;〃生成一个带头结点的空链表returnOK;}StatusCreateLinklist(LinkList&L){〃根据用户输入来创建单链表intn;LNode兴p,兴q;q二L;while(1){printf("Pleaseenterthenextdataelementofthelist:");scanf(H%dH,&n);讦(n!=-l){〃当用户输入・1时,停止输入数据元素p=

4、(LinkList)malloc(sizeof(LNode));if(!p)exit(OVERFLOW);p->data二n;p->next=NULL;q->next=p;q=p;}elsebreak;}returnOK;}StatusPrintLinklist(LinkListL){LNode*p;p=L->next;if(p=NULL)printf("Thislistisempty.n);else{while(p!=NULL){printf(H%d”,p->data);p=p->next;returnOK;}Statusmai

5、n(){LinkListL;InitLinklist(L);〃初始化单链表CreateLinklist(L);〃创建单链表printf("Beforelinkreversing..An");PrintLinklist(L);〃打印单链表ReverseLinklist(L);〃对单链表进行逆置printf("Afterlinkreversing..An11);PrintLinklist(L);〃打印逆置后的单链表getchar();〃此句和下句仅为检验结果输出而加getchar();returnOK;}2.已知线性表C={ai,

6、bi,遁,b?,…,an,b}采用单链表L(包含头结点)存放,写一算法将其拆分成两个线性表(分别用带头结点的单链表存放),使得:A={aba2,…,如},B二{bi,b2,并将对应的程序调试运行通过。#include#include#defineOVERFLOW・2#defineOK1typedefintElemType;typedefintStatus;typedefstructLNode{ElemTypedata;structLNode*next;JLNode,*LinkList;Stat

7、usInitLinklist(LinkList&L){〃初始化单链表LNode*p=(LinkList)malloc(sizeof(LNode));if(!p)exit(OVERFLOW);L=p;p->next二NULL;〃生成一个带头结点的空链表returnOK;}StatusCreateLinklist(LinkList&L){〃根据用户输入来创建单链表intn;LNode*p,*q;q二L;while(1){printf(nPleaseenterthenextdataelementofthelist:");scanf(”%

8、d”,&n);if(n!=・l){〃当用户输入・1时,停止输入数据元素p=(LinkList)malloc(sizeof(LNode));if(!p)exit(OVERFLOW);p->data=n;p・>next二NULL;q->next=p;q

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。