大连理工大学数据结构一上机作业答案张老师.docx
《大连理工大学数据结构一上机作业答案张老师.docx》由会员分享,可在线阅读,更多相关《大连理工大学数据结构一上机作业答案张老师.docx(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 将依次表逆置,要求用最少的附加空间。参考答案#include#include#include#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int ElemType;typedef int Status;#define LIST_INIT_SIZE 100#define LISTTINCREMENT 10typedef structElemType *elem;int length;int listsize;SqList;/创立空依次表Status InitList_Sq(SqList &
2、L)L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType);if(!L.elem)exit(OVERFLOW);L.length=0;L.listsize=LIST_INIT_SIZE;return OK;/创立依次表,插入元素void ListInput_Sq(SqList &L)int n,i;printf(input the length of Sqlist:);scanf(%d,&n);L.length=n;for(i=0;in;i+)printf(input elem:);scanf(%d,&L.elemi);/输出依次表中的
3、元素void ListOutput_Sq(SqList L)int i,n;n=L.length;for(i=0;in;i+)printf(%2d,L.elemi);/依次表逆置void ReverseList_Sq(SqList &L)int i,n;ElemType p;n=L.length;for(i=0;i10-20-30-40);(3) InsertList():在有序单链表中插入元素x;(4) ReverseList():单链表就地逆置;(5) DelList():在有序单链表中删除全部值大于mink且小于maxk的元素。选作:运用文本菜单完胜利能选择及执行。参考答案:#inclu
4、de#include#include#define OK 1#define ERROR 0typedef int ElemType;typedef int Status;typedef struct LNodeElemType data;struct LNode *next;LNode,*LinkList;void CreateList(LinkList &L,int n)int i;LNode *p,*q;L=(LinkList)malloc(sizeof(LNode);L-next=NULL;q=L;printf(请输入所要建立的单链表所包含的元素:);for(i=0;idata);p-n
5、ext=NULL;q-next=p;q=p;void PrintList(LinkList L)LNode *p;p=L-next;while(p)printf(%d,p-data);p=p-next;printf(n);void InsertList(LinkList L,ElemType m)LNode *p,*q,*s;p=L;q=L-next;while(q&q-datanext;if(q)s=(LinkList)malloc(sizeof(LNode);s-data=m;s-next=q;p-next=s;elses=(LinkList)malloc(sizeof(LNode);s-
6、data=m;s-next=NULL;p-next=s;void ReverseList(LinkList &L)LNode *p,*q;if(L-next&L-next-next)p=L-next;q=p-next;p-next=NULL;while(q)p=q;q=q-next;p-next=L-next;L-next=p;void DeleteList(LinkList &L,ElemType mink,ElemType maxk)LNode *p=L,*q;while(p-next&p-next-datanext;q=p;while(q&q-datanext;p-next=q;void
7、 main()LinkList L;int n,number;ElemType e,mink,maxk;doprintf(*n);printf(建立单链表请按1.n);printf(显示单链表请按2.n);printf(有序插入新元素请按3.n);printf(单链表就地逆置请按4.n);printf(删除大于mink且小于maxk的全部元素请按5.n);printf(退出请按0.n);printf(*n);printf(n请选择操作:n);scanf(%d,&number);switch(number)case 1:printf(请输入单链表中的节点个数:); scanf(%d,&n); C
8、reateList(L,n); break;case 2:printf(要执行本操作请先建立单链表,请输入单链表中的节点个数:); scanf(%d,&n); CreateList(L,n); printf(单链表为:); PrintList(L); break; case 3:printf(要执行本操作请先建立单链表,请输入单链表中的节点个数:); scanf(%d,&n); CreateList(L,n); printf(请输入有序表中插入的值:); scanf(%d,&e); InsertList(L,e);PrintList(L); break; case 4:printf(要执行本操
9、作请先建立单链表,请输入单链表中的节点个数:); scanf(%d,&n); CreateList(L,n); printf(单链表逆置:); ReverseList(L);PrintList(L); break; case 5:printf(要执行本操作请先建立单链表,请输入单链表中的节点个数:); scanf(%d,&n); CreateList(L,n); printf(请输入mink和maxk:); scanf(%d%d,&mink,&maxk); DeleteList(L,mink,maxk);PrintList(L); break;while(number!=0);第二次作业栈承受
10、依次栈存储,试设计算法实现将表达式转换成后缀表达式输出。例如,输入表达式: a+b/c-(d*e+f)*g 输出其后缀表达式:abc/+de*f+g*- 参考答案:#include#include#include#include#define OVER -2#define OK 1#define ERROR 0#define ture 1#define false 0#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef char SElemType;typedef char ElemType;typedef struct SEl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大连理工大学 数据结构 上机 作业 答案 老师
限制150内