习题及解答.docx
《习题及解答.docx》由会员分享,可在线阅读,更多相关《习题及解答.docx(10页珍藏版)》请在第壹文秘上搜索。
1、第1章1.请说明数据结构、数据类型以及抽象数据类型之间的区别。略2 .解释什么是数据的逻辑结构和物理结构。略3 .分析下面各算法(程序段)的最大语句频度并计算该算法的时间复杂度。1) for(i=0;in;i+)for(j=Ojn;j+)Aij=O;O(M)2) for(i=0;in;i+)for(j=0;ji;j+)Aij=O;O(M)3) s=0;for(i=0;in;i+)for(j=O;jn;j+)for(k=0;kn;k+)s=s+Bijk;sum=s;0(n3)4) i=l;while(i=n)i=i*2;0(log2n)第2章an)1.inti,n;ElemTypetemp;n=
2、1.length;for(i=0;inext;while(p!=NU1.1.)/当表不为空时,逐个结点逆置s=q;q=p;p=p-next;q-next=s;)p-next=q;)2.3设顺序表Va中的数据元数递增有序。试写一算法,将X插入到顺序表的适当位置上,以保持该表的有序性。intInsert(Seq1.ist&1.,x)inti;if(1.length+lmaxsize(!1.1.ength)return0;for(i=1.Iength-I;1.elemix&i=0;i一)Elemi+l=elemi;elcmi+l=x;1.length+;return1;)第3章1、己知堆栈采用链式存
3、储结构,初始时为空,试画出u,%w,X四个元素依次进栈以后堆栈的状态,然后画出此时的栈顶元素出栈后堆栈的状态。2、用图表示出使用栈将表达式“9*(8-3)/5+4#”转换成后缀表达式并计算结果的过程。3、假定用一个单循环链表来表示队列(也称为循环队列),该队列只设一个队尾指针,不设队首指针,试编写下列各种运算的算法:(1)向循环链队列插入一个元素值为X的结点;(2)从循环链队列中删除一个结点。本题是对一个循环链队列做插入和删除运算,假设不需要保留被删结点的值和不需要回收结点,算法描述如下:(1)插入(即入队)算法:insert(1.ink1.ist*rear,eIemtypex)设循环链队列的
4、队尾指针为rear,x为待插入的元素1.ink1.ist*p;p=(1.ink1.ist*)malloc(sizeof(1.ink1.ist);if(rear=NU1.1.)如为空队,建立循环链队列的第一个结点rear=p;rear-next=p;链接成循环链表)else否则在队尾插入P结点p-next=rear-next;rear-next=p;rear=p;)(2)删除(即出队)算法:delete(1.ink1.ist*rear)设循环链队列的队尾指针为rearif(rear=NU1.1.)空队printf(,underflow11zz);if(rear-next=rear)队中只有一个结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题 解答
![提示](https://www.1wenmi.com/images/bang_tan.gif)