《数据结构》题库及答案(共21页).doc

上传人:飞****2 文档编号:13854577 上传时间:2022-05-01 格式:DOC 页数:21 大小:382KB
返回 下载 相关 举报
《数据结构》题库及答案(共21页).doc_第1页
第1页 / 共21页
《数据结构》题库及答案(共21页).doc_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《《数据结构》题库及答案(共21页).doc》由会员分享,可在线阅读,更多相关《《数据结构》题库及答案(共21页).doc(21页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上数据结构题库及答案一、选择题1线性表的顺序存储结构是一种 的存储结构,线性表的链式存储结构是一种 的存储结构。a. 随机存储; b.顺序存储; c. 索引存取; d. HASH存取2一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是 。a. edcba; b. decba; c. dceab; d.abcde 3一个队列的入队序列是1,2,3,4,则队列的输出序列是 。a. 4,3,2,1; b. 1,2,3,4; c. 1,4,3,2; d.3,2,4,14在一个单链表中,已知p结点是q结点的直接前驱结点,若在p和q之间插入结点s,则执行的操作是 。a.

2、 s-nxet=p-next; p-next=s;b. p-next=s-next; s-next=p;c. q-next=s;s-next=p;d. p-next=s; s-next=q;5设有两个串p,q,求q在p中首次出现的位置的运算称作 。a.联接 b.模式匹配 c.求子串 d.求串长6二维数组M的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i的范围从0到8,列下标j的范围从1到10,则存放M至少需要 个字节。a. 90 b.180 c.240 d.5407在线索二叉树中,结点p没有左子树的充要条件是 。a. p-lch=NULLb. p-ltag=1c. p-ltag=1

3、且p-lch=NULLd. 以上都不对8在栈操作中,输入序列为(A,B,C,D),不可能得到的输出序列为:_A、(A,B,C,D) B、(D,C,B,A)C、(A,C,D,B) D、(C,A,B,D)9已知某二叉树的后序序列是dabec,中序序列是debac,则它的先序序列是 。A、acbed B、decab C、deabc D、cedba10设矩阵A是一个对称矩阵,为了节省存储空间,将其下三角部分(见下图)按行序存放在一维数组B1.n(n-1)/2中,对任一上三角部分元素,在一维数组B的存放位置是 。A、 B、C、 D、11 图G中有n个顶点,n-1条边,那么图G一定是一棵树吗? 。A、 一

4、定是 B、一定不是 C、不一定12 用某种排序方法对关键字序列25,84,21,47,15,27,68,35,20进行排序时,元素序列的变化情况如下: 25,84,21,47,15,27,68,35,20 20,15,21,25,47,27,68,35,84 15,20,21,25,35,27,47,68,84 15,20,21,25,27,35,47,68,84则所采用的排序方法是 。A、 快速排序 B、希尔排序C、归并排序 D、选择排序13表达式a*(b+c)-d的后缀表示式是 。a. abcd-*+;b. abc+*d-;c. abc*+d-;d. -*a+bcd;14在双向循环链表中的

5、结点P之后插入结点S的操作是 。a. p-next=s; s-prior=p; p-next-prior=s; s-next=p-next;b. p-next=s; p-next-prior=s; s-prior=p; s-next=p-next;c. s-prior=p; s-next=p-next; p-next=s; p-next-prior=s;d. s-prior=p; s-next=p-next; p-next-prior=s; p-next=s;15如下图所示循环队列,其中的数据元素个数是 0Q.rearQ.frontm-11b. (Q.rear-Q.front+m)%mc. Q

6、.rear-Q.frontd. Q.rear-Q.front+1e. (Q.rear-Q.front)%m16串是一种特殊的线性表,其特殊性体现在 。a. 可以顺序存储b. 数据元素是一个字符c. 可以链接存储d. 数据元素可以是多个字符17 数组A中,每个元素Aij的长度是3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,存放该数组的单元数是 。a. 80b. 100c. 240d. 27018已知某二叉树的先序遍历序列是abdgcefh,中序遍历序列是dgbaechf,则其后序遍历的结点访问顺序序列是 。a. bdgcefhab. gdbecfhac. b

7、dgaechfd. gdbehfca19线索二叉树是一种 结构。a. 逻辑b. 逻辑和存储c. 物理d. 线性20在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的 倍。a. 1/2b. 1c. 2d. 321采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定元素所在的块时,则每块应分为 个元素的块时,查找效率最佳。a. 10b. 25c. 6d. 62522一个栈的输入序列是12345,则栈的不可能输出序列是 。a. 54321b. 45321c. 43512d. 1234523 完全二叉树一定是满二叉树吗? 。a. 一定是b. 不是c. 不一

8、定24线性表采用链式存储结构时其地址 。a. 必须是连续的b. 部分地址必须是连续的c. 一定是不连续的d. 连续不连续都可以25 具有线性结构的数据结构是 。a. 树b. 图c. 广义表d. 栈26下图为顺序队列的初始情况,设a, b, c相继出队列,e, f相继入队列,则指针Q.front和Q.rear分别为 。Q.rear=454d3c2Q.front=0b1a0a. 2,5b. 3,5c. 3,6d. 4,6二、填空题1设n行n列的下三角阵A已经压缩存储到一维数组S0.中,若按行序为主序存储,则Aij对应的在S中的存储位置是 。2广义表(a),(b),c),(d)的长度是 ,深度是 。

9、3深度为k的完全二叉树至少有 个结点,至多有 个结点,若按自上而下,从左到右的次序给结点编号(从1开始),则编号最小的叶子结点的编号是 。4根据有向图的宽度优先遍历算法,对下图2所示有向图从顶点v1出发进行搜索,所得到的顶点遍历序列是 。0V1213 NULL34 NULL13 NULL1V2NULL2V33V4NULL4V5图25有一个有序表为1,3,9,12,32,41,45,62,75,77,82,95,100,当二分查找值为82的元素时,需要经过 次比较就找到。6_是数据的最小单位。7在双向链表中,每个结点有两个指针域,一个是指向_,另一个指向_。8设栈ST用顺序存储结构表示,则栈ST

10、为空的条件是_。9两个串相等的充分必要条件是_和对应位置上的字符相等。10对于深度为h的二叉树至多有_个结点。11将一个A的对称矩阵压缩存储到一个一维数组中,该数组的长度至少为_。三、算法应用题1数据集4,5,6,7,10,12,18为结点权值构造Huffman树,请给出构造所得的Huffman树,并求其带权路径长度。2假设一棵二叉树的先序序列是EBADCFHGIKJ,中序序列是ABCDEFGHIJK。请画出该二叉树。3已知一颗二叉排序树如下图所示,若依次删除93、19、87、48结点,试分别画出每删除一个结点后得到的二叉排序树。 4已知关键字序列19,01,23,14,55,20,84,27

11、,68,11,10,77,采用哈希函数:H(key)=key%13,和开放地址法的线性探测再散列方法解决冲突,已知其装填因子,试对该关键字序列构造哈希表,并求其查找成功时的平均查找长度。5画出和下列已知序列对应的森林F:森林的先序遍历序列是:ABCDEFGHIJKL;森林的中序遍历序列是:CBEFDGAJIKLH。6假设用于通讯的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10。请给这8个字母设计哈夫曼编码。62463551V1V2V3V4V5V6657对下图所示的无向带权图,给出其邻接矩阵,并按Pr

12、im算法求其最小生成树;给出其邻接表,并按Kruskal算法求其最小生成树。8我们已经知道对长度为n的记录序列进行快速排序时,所需进行的比较次数依赖于这n个元素的初始排列。试问: n=7时在最好情况下需进行多少次比较?请说明理由。 对n=7给出一个最好情况的初始排列实例。9下列算法为斐波那契查找算法:int FibSearch (SqList r, KeyType k) j=1;while (fib(j)n+1) j=j+1;mid=n-fib(j-1)+1; /若fib(j)=n+1, 则mid=fib(j-1)f1=fib(j-2); f2=fib(j-3); found=false;wh

13、ile ( (mid!=0) & (!found) )switchcase (k=rmid.key): found=true; break;case (krmid.key): if (f1=1) mid=0; else mid=mid+f2; f1=f1-f2; f2=f2-f1; break;if found return mid;else return 0;/FibSearch其中fib(i)为斐波那契序列。试画出对长度为20的有序表进行斐波那契查找的判定树,并求其等概率时查找成功的平均查找长度。10对下图所示的AOE网络,计算各活动的最早开始时间e (i)和最迟开始时间l (i),各事件

14、的最早发生时间ve(i)和vl(i);并列出各条关键路径。a9=4a8=7a7=9a5=1a4=1a3=5a2=4a1=6V11V21V31V41V51V61V71V81V91a6=2a10=2a11=4四、算法设计题1设线性表,试写一按下列规则和并为线性表的算法,即使得 当时;或者 当时。线性表和均以单链表作存储结构,且表利用表和表中的结点空间构成。注意:单链表的长度值和均未显示存储。2试完成二叉树按层次(同一层自左至右)遍历的算法。3试完成求无向图的连同分量个数的算法。4试写一算法将两个递增有序的带头结点的单链表合并为一个非递增有序的带头结点的单链表。(利用原表结点空间)5设顺序表va中的

15、数据元素递增有序(数据元素的类型是整型)。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。五、简答题1画出广义表(a,(b,(c,(),(d,e),(f))的存储图。(链式)2分别画出具有3个结点的树和具有3个结点的二叉树的所有形态。六、证明题1试证明:若借助栈由输入序列得到的输出序列为 (它是输入序列的一个排列),则在输出序列中不可能出现这样的情况:存在使得 。2试证明:在一棵满k叉树上的叶子结点数和非叶子结点数之间满足一下关系:数据结构作业参考答案一、选择题1 a b2 c3b4a,d5 b6 d7b8D 9D 10B 11C 12C 13 c 14d 15a 16b 17c

16、18d 19c 20b 21b22c 23c 24d 25d 26c 二、填空题1 23 43 2k-1, 2k-1, 2k-2+14 v1, v3, v2, v4, v55 46数据项 7结点的直接前驱结点, 结点的直接后继结点8ST.top= =-1 9参加比较的两个字符串长度相同10 11120三、算法应用题1623725191812139104567解答:WPL=4*4+5*4+6*3+7*3+10*3+12*2+18*2=9*4+23*3+30*2=36+69+60=1652解答:和已知序列对应的二叉树是:FACDGJKHIBE34解答:各关键字的哈希函数值见下表:key190123

17、145520842768111077H(key) =key%136110137613111012采用开放地址法的线性探测再散列方法解决冲突,已知其装填因子,对上表中的关键字序列构造所得哈希表如下:地址01234567891011121314151617key011455276819208423111077比较次数121431131132在等概率情况下,其查找成功时的平均查找长度是:5和已知序列对应的森林如下图示:ABDGCEFHIKLJ6解答:设这8个字母的权重为7,19,2,6,32,3,21,101111111000000023561110717282119403260100由上图的哈夫曼

18、树知这8个字母的哈夫曼编码分别为0010,10,00000,0001,01,00001,11,00117解答:如图所示的无向带权图的邻接矩阵如下图示:12345610615260533150564455025360664260按Prim算法求得的最小生成树如下图(f)所示(树中结点用粗黑实线表示):假设初始时,树中只有一个顶点,不含有任何一条边,下图(a)(f)为用Prim算法求其最小生成树的过程。6246355165V1V2V3V4V5V6(a)2463551656V1V2V3V4V5V6(b)62463551V1V2V3V4V5V665(c)65V1V2V3V4V5V662435165(d

19、)6V56243551V1V2V3V4V665(e)6246355165V1V2V3V4V5V6(f)如图所示的无向带权图的邻接表如下图示:V1V2V3V4V5V6012345123 NULL024 NULL 013 NULL 025 NULL 125 NULL 234 NULL 按照Kruskal算法求得的最小生成树如下图(f)所示(树中结点用粗黑实线表示),假设初始时,树中含有全部顶点,但不含有任何一条边,下图(a)(f)为用Kruskal算法求最小生成树的过程。6246355165V1V2V3V4V5V66246355165V1V2V3V4V5V6(b)62463551V1V2V3V4V

20、5V665(c)56365V1V2V3V4V5V624165(d)63624551V5V1V2V3V4V665(e)6246355165V1V2V3V4V5V6(f)(a)8解答:快速排序的最好情况是指,排序所需的“关键字间的比较次数”和“记录的移动次数”最少的情况,在n=7时,至少需要进行2趟排序。因此,当n=7时在最好情况下需进行的比较次数是10次。n=7时的一个最好情况的初始排列实例是:4,7,5,6,3,1,29解答:对长度为20的有序表进行斐波那契查找的判定树如下图示:1381851116203710121517192469141 其等概率查找时查找成功的平均查找长度为:10a9=4

21、a8=7a7=9a5=1a4=1a3=5a2=4a1=6V11V21V31V41V51V61V71V81V91a6=2a10=2a11=4解答:上图所示AOE网中各顶点事件的最早发生时间Ve(i)和最迟发生时间Vl(i)如下表示:V1V2V3V4V5V6V7V8V9Ve(i)064577161418Vl(i)0668710161418上图所示AOE网中各活动的最早开始时间e(i)和最迟开始时间l(i)如下表示:a1a2a3a4a5a6a7a8a9a10a11e(i)0006457771614l(i)02366877101614有上表的可见活动a1, a4, a7, a8, a10, a11的最

22、早开始时间和最迟开始时间相等,因此他们是关键活动,他们所在的路径是关键路径。见下图示。有2条关键路径。a6=2a10=2a9=4a8=7a7=9a5=1a4=1a3=5a2=4a1=6V11V21V31V41V51V61V71V81V91a11=4四、算法设计题1本题涉及的存储结构描述如下:单链表存储结构:typedef struct Lnode *LinkList;typedef struct LnodeDataType data;LinkList next;Lnode,*LinkList;void mergelinklist (LinkList&lc, LinkList la, LinkL

23、ist lb)lc=la;pa=la-next; pb=lb-next; pc=lc;lc-next=NULL;while(pa & pb)pc-next=pa;pc=pa;pa=pa-next;pc-next=pb;pc=pb;pb=pb-next;if ( pa ) pc-next=pa;delete(lb);2解答:本题涉及的存储结构描述如下:树的二叉链表存储结构:typedef strcut bitreenode *bitree;typedef struct bitreenodedatatype data;bitree lch, rch; bitreenode, *bitree;队列的

24、链式存储结构:typedef struct linkquenode *linkqueptr;typedef struct linkquenodebitree quelem;linkqueptr next; linkquenode, *linkqueptr;typedef struct linkquelinkqueptr front, rear; linkque;void layertraverse(bitree bt)coutendl”按层次遍历的结果如下:”endl;initqueue(Q);if ( bt )enterqueueu(Q,bt);while( ! emptyqueue(Q)

25、)p=delqueue(Q);coutdata;if (p-lch) enterqueueu(Q, p-lch);if (p-rch) enterqueueu(Q, p-rch);else coutendl”该树是空树”endl;/遍历结束3解答:本题涉及的存储结构描述如下:图的邻接链表存储结构:typedef struct adjvexnode *adjvexptr;typedef structint adjvex;adjvexptr next;adjvexnode,*adjvexptr;typedef struct vexnodeDataType data;Adjvexptr firsta

26、dj;vexnode;typedef structvexnode vertexVexNum+1int vexnum,arcnum; Graph_adjlinkint Num_connected(Graph_adjlink g)count=0;for( v=1; v=g.vexnum; v+) visitedv=false;for(v=1; v= g.vexnum; v+) if (!visitedv) dfs(g,v);count+;return count;void dfs(Graph_adjlink g, int v)cout adjvex;if (!visitedw) dfs(g,w);

27、p=p-next;4解答:本题涉及的存储结构描述如下:单链表存储结构:typedef struct Lnode *LinkList;typedef struct LnodeDataType data;LinkList next;Lnode,*LinkList;void merge_two_asceding_linklist_to_one_desceding_linklist (LinkList& lc, LinkList la,lb)pa=la-next;pb=lb-next;lc=la;pc=lc;pc-next=NULL;while ( pa & pb )if (pa-data data)

28、u=pa-next;pa-next=pc-next;pc-next=pa;pa=u;elseu=pb-next;pb-next=pc-next;pc-next=pb;pb=u;while (pa )u=pa-next;pa-next=pc-next;pc-next=pa;pa=u;while (pb )u=pb-next;pb-next=pc-next;pc-next=pb;pb=u;delete(lb)5解答:本题涉及的存储结构描述如下:顺序存储结构:const maxsize=100;typedef int ElemType;typedef structElemType rmaxsize+

29、1;int length;/实际长度SqList;Void inert_x_into(SqList& va, int x)j=va.length;while ( (x=0) )va.rj+1=va.rj;j-;va.rj+1=x;va.length=va.length+1;五、简答题1存储图:1 0 a 1 0 b 1 0 c 1 0 d 0 e 1 1 0 f 1 2树:abcabc二叉树: abcabcabcabcabc六、证明题1证明:反证法。设存在使得。则由得出栈序列;由得知入栈序列为;由知最先出栈,则由知出栈的序列将是。此出栈序列与由得到的出栈序列矛盾。因此假设错误。从而若借助栈由输入序列得到的输出序列为 (它是输入序列的一个排列),则在输出序列中不可能存在使得 。证毕2证明:设总结点数为,则: ;又该满k叉树上的每个结点出根之外都一个分支进入,这些分支是由非叶子结点产生的,因此有: ;由和得:证毕专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com