数据结构习题(1).docx
《数据结构习题(1).docx》由会员分享,可在线阅读,更多相关《数据结构习题(1).docx(5页珍藏版)》请在第一文库网上搜索。
1、第一章绪论讨论题:1 .常用的存储表示方法有哪几种?2 .算法的时间复杂度仅与问题的规模相关吗?思考题:设n为正整数。试确定下列各程序段中前置以记号的语句的频度:(1)1=1;k=0;whi1e(i=-1)k+=10*i;1+;(2) i=1;k=0;dok+=10*i;i+;whi1e(i=-1);(3) i=1;k=0;whi1e(i=-1)i+;k+=10*i;(4) k=0;for(i=1;i=n;i+)for(j=i;j=n;j+)k+;(5) for(i=1;i=n;i+)for(j=1;j=i;j+)for(k=1;k=j;k+)x+=de1ta;(6) i=1;j=0;whi1
2、e(i+jj)j+;e1sei+;(7) x=n;/n是不小于1的常数y=0;whi1e(x=(y+1)*(y+1)y+;)(8) x=91;y=100;whi1e(y0)if(x100)x-=10;y-;e1sex+;第二章线性表讨论题:1 .为什么在单循环链表中设置尾指针比设置头指针更好?2 .何时选用顺序表、何时选用链表作为线性表的存储结构为宜?思考题:1 .指出以下算法中的错误和低效之处,并把它改写为一个既正确又高效的算法。StatusDe1eteK(Sq1ist&a,intI,intk)/本过程从顺序存储结构的线性表a中删除第I个元素起的k个元素。e1sefor(count=1;co
3、untk;count+)/删除一个元素rreturnOK;/De1eteK2 .假设某个单向循环链表的长度大于1,且表中既无头结点也无头指针。已知S为指向链表中某个结点指针,试编写算法在链表中删除指针s所指结点的前驱结点。第三章栈和队列讨论题:1 .若以1234作为双端队列的输入序列,试分别求出满足以下条件的输出序列:D能由输入受限的双端队列得到,但不能由输出受限的双端队列得到的输出序列;2)能由输出受限的双端队列得到,但不能由输入受限的双端队列得到的输出序列;3)既不能由输入受限的双端队列得到,也不能由输出受限的双端队列得到的输出序列。2 .进栈序列为123,则可能得到的出栈序列是什么?3
4、.如果进栈序列为123456,则能否得到435612和135426的出栈序列,并请说明为什么不能得到。思考题:1.设两个栈共享空间vOm-1,两栈的栈底分别设在向量的两端,且每个元素占一个分量。试设计这两个栈的插入和删除算法。简述以下算法的功能。(1) voidDemo1(SeqStack*S)intI;arr64;n=0;whi1e(StackEmpty(S)arrn+=Pop(S);for(1=0,Kn;I+)Push(S,arrI);/Demo1(2) voidDemo3(CirQueue*Q)/设DataTyPe为int型intx;SeqStackS;InitStack(&S);whi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 习题
