欢迎来到天天文库
浏览记录
ID:52677374
大小:68.50 KB
页数:12页
时间:2020-03-29
《大连理工大学数据结构(一)上机作业答案——张老师.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1.将顺序表逆置,要求用最少的附加空间。参考答案#include#include#include#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2typedefintElemType;typedefintStatus;#defineLIST_INIT_SIZE100#defineLISTTINCREMENT10typedefstruct{ElemType*elem;intlength;intlistsi
2、ze;}SqList;//创建空顺序表StatusInitList_Sq(SqList&L){L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem)exit(OVERFLOW);L.length=0;L.listsize=LIST_INIT_SIZE;returnOK;}//创建顺序表,插入元素voidListInput_Sq(SqList&L){intn,i;printf("inputthelengthofSqlist:");scanf("%
3、d",&n);L.length=n;for(i=0;i4、lem[i];L.elem[i]=L.elem[n-i-1];L.elem[n-i-1]=p;}}voidmain(){SqListL;InitList_Sq(L);ListInput_Sq(L);ListOutput_Sq(L);ReverseList_Sq(L);printf("");printf("输出结果为:");ListOutput_Sq(L);printf("");}1.从键盘读入n个整数(升序),请编写算法实现:(1)CreateList():建立带表头结点的单链表;(2)PrintList():显示单链5、表,(形如:H->10->20->30->40);(3)InsertList():在有序单链表中插入元素x;(4)ReverseList():单链表就地逆置;(5)DelList():在有序单链表中删除所有值大于mink且小于maxk的元素。选作:使用文本菜单完成功能选择及执行。参考答案:#include#include#include#defineOK1#defineERROR0typedefintElemType;typedefintStatus;typedefst6、ructLNode{ElemTypedata;structLNode*next;}LNode,*LinkList;voidCreateList(LinkList&L,intn){inti;LNode*p,*q;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;q=L;printf("请输入所要建立的单链表所包含的元素:");for(i=0;idata);p->next=N7、ULL;q->next=p;q=p;}}voidPrintList(LinkListL){LNode*p;p=L->next;while(p){printf("%d",p->data);p=p->next;}printf("");}voidInsertList(LinkListL,ElemTypem){LNode*p,*q,*s;p=L;q=L->next;while(q&&q->datanext;}if(q){s=(LinkList)malloc(sizeof(LNode));s->data=m8、;s->next=q;p->next=s;}else{s=(LinkList)malloc(sizeof(LNode));s->data=m;s->next=NULL;p->next=s;}}voidReverseList(LinkList&L){LNode*p,*q;if(
4、lem[i];L.elem[i]=L.elem[n-i-1];L.elem[n-i-1]=p;}}voidmain(){SqListL;InitList_Sq(L);ListInput_Sq(L);ListOutput_Sq(L);ReverseList_Sq(L);printf("");printf("输出结果为:");ListOutput_Sq(L);printf("");}1.从键盘读入n个整数(升序),请编写算法实现:(1)CreateList():建立带表头结点的单链表;(2)PrintList():显示单链
5、表,(形如:H->10->20->30->40);(3)InsertList():在有序单链表中插入元素x;(4)ReverseList():单链表就地逆置;(5)DelList():在有序单链表中删除所有值大于mink且小于maxk的元素。选作:使用文本菜单完成功能选择及执行。参考答案:#include#include#include#defineOK1#defineERROR0typedefintElemType;typedefintStatus;typedefst
6、ructLNode{ElemTypedata;structLNode*next;}LNode,*LinkList;voidCreateList(LinkList&L,intn){inti;LNode*p,*q;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;q=L;printf("请输入所要建立的单链表所包含的元素:");for(i=0;idata);p->next=N
7、ULL;q->next=p;q=p;}}voidPrintList(LinkListL){LNode*p;p=L->next;while(p){printf("%d",p->data);p=p->next;}printf("");}voidInsertList(LinkListL,ElemTypem){LNode*p,*q,*s;p=L;q=L->next;while(q&&q->datanext;}if(q){s=(LinkList)malloc(sizeof(LNode));s->data=m
8、;s->next=q;p->next=s;}else{s=(LinkList)malloc(sizeof(LNode));s->data=m;s->next=NULL;p->next=s;}}voidReverseList(LinkList&L){LNode*p,*q;if(
此文档下载收益归作者所有