欢迎来到天天文库
浏览记录
ID:31614129
大小:54.93 KB
页数:6页
时间:2019-01-16
《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
此文档下载收益归作者所有