收藏 分销(赏)

数据结构(第二版)-模拟试题自测卷AB卷带答案2.doc

上传人:w****g 文档编号:3158367 上传时间:2024-06-21 格式:DOC 页数:17 大小:654KB
下载 相关 举报
数据结构(第二版)-模拟试题自测卷AB卷带答案2.doc_第1页
第1页 / 共17页
数据结构(第二版)-模拟试题自测卷AB卷带答案2.doc_第2页
第2页 / 共17页
数据结构(第二版)-模拟试题自测卷AB卷带答案2.doc_第3页
第3页 / 共17页
数据结构(第二版)-模拟试题自测卷AB卷带答案2.doc_第4页
第4页 / 共17页
数据结构(第二版)-模拟试题自测卷AB卷带答案2.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、试卷三一、单项选择题(在下列每小题四个备选答案中选出一个正确答案,并将其字母标号填入题干的括号内。每小题2分,共30分)1数据结构可以形式化地定义为(S,),其中S指某种逻辑结构,是指( )A.S上的算法B.S的存储结构C.在S上的一个基本运算集D.在S上的所有数据元素2下列说法正确的是( )A.线性表的逻辑顺序与存储顺序总是一致的B.线性表的链式存储结构中,要求内存中可用的存储单元可以是连续的,也可以不连续C.线性表的线性存储结构优于链式存储结构D.每种数据结构都具有插入、删除和查找三种基本运算3稀疏矩阵一般采用( )方法压缩存储。A.三维数组B.单链表C.三元组表D.散列表4.在一个单链表

2、中,若p结点不是最后结点,在p之后插入s结点,则实行( )。 A. s.next:=p;p.next=s; B. s.next:=p.next;p.next:=s; C. s.next:=p.next;p:=s; D. p.next:=s;s.next=p;5.某个向量第一元素的存储地址为100,每个元素的长度为2,则第五个元素的地址是( )。 A.110 B.108 C.100 D.1206.下面的二叉树中,( )不是完全二叉树。7.一组记录的排序码为(47、78、61、33、39、80),则利用堆排序的方法建立的初始堆为( )。 A.78、47、61、33、39、80 B.80、78、61

3、、33、39、47 C.80、78、61、47、39、33 D.80、61、78、39、47、338.假设left和right为双向链表中指向直接前趋结点和直接后继结点的指针域,现要把一个指针s所指的新结点作为非空双链表中q所指地点(中间结点)的直接后继结点插入到该双向链表中,则下列算法段能正确完成上述要求的是( )A.q-right=s; s-left=q; q-right-left=s; s-right=q-right;B.s-left=q; q-right=s; q-right-left=s; s-right=q-right;C.s-left=q; s-right=q-right; q-

4、right-left=s; q-right=s;D.以上都不对9.由下列三棵树组成转的森林换成一棵二叉树为( )10. for(i=0;im;i+)for(j=0;jt;j+)cij=0;for(i=0;im;i+)for(j=0;jt;j+)for(k=0;knext-next!=h) p=p-next; p-next=h; 后(其中,p-next为p指向结点的指针域),则( )A. p-next指针指向链尾结点 B. h指向链尾结点 C. 删除链尾前面的结点 D. 删除链尾结点 15.某二叉树的先根遍历序列和后根遍历序列正好相反,则该二叉树具有的特征是( )A.高度等于其结点数B.任一结点

5、无左孩子 C.任一结点无右孩子D.空或只有一个结点二、填空题(本大题共13小题,每小题2分,共26分)请在每小题的空格中填上正确答案。错填、不填均无分。16.数据的逻辑结构通常包括集合、线性结构、_和图状结构。17给定n个值构造哈夫曼树。根据哈夫曼算法,初始森林中共有n棵二叉树,经过 次合并后才能使森林中的二叉树的数目由n棵减少到只剩下一棵最终的哈夫曼树。18树型结构结点间通过“父子”关系相互关联,这种相互关联构成了数据间的 关系。19.在一个具有n个结点的单链表中查找值为m的某结点,若查找成功,则需平均比较的结点数为_。20.数据表示和_是程序设计者所要考虑的两项基本任务。21.在循环队列中

6、,存储空间为0n-1。设队头指针front指向队头元素前一个空闲元素,队尾指针指向队尾元素,那么其队空标志为rear=front,队满标志为 _。22.深度为k的二叉树至多有 _个结点,最少有 _个结点。23在堆排序和快速排序中,若原始记录已基本有序,则较适合选用 。24.在一棵二叉排序树上按_遍历得到的结点序列是一个有序序列。25.实现二分查找的存储结构仅限于顺序存储结构,且其中元素排列必须是_的。26.三个结点可构成_种不同形态的二叉树。27.设需将一组数据按升序排序。在无序区中依次比较相邻两个元素ai和ai+1的值,若ai的值大于ai+1的值,则交换ai和ai+1。如此反复,直到某一趟中

7、没有记录需要交换为止,该排序方法被称为_。28.对于一棵具有n个结点的二叉树,当进行链接存储时,其二叉链表中的指针域的总数为2n个,其中_个用于链接孩子结点。三、应用题(本大题共5小题,每小题6分,共30分)29.已知一棵二叉树的前序序列是ABCDEFG,中序序列是CBDAEGF。请构造出该二叉树,并给出该二叉树的后序序列。30有一字符串序列为5*-x-y/x+2,利用栈的运算将其输出结果变为5x-*yx+/-2,试写出该操作的入栈和出栈过程(采用push(a)表示a入栈,pop(a)表示a出栈)。31.已知某二叉树的顺序存储结构如图所示,试画出该二叉树,并画出其二叉链表表示。ABCDEFG3

8、2.已知一组键值序列为(38,64,73,52,40,37,56,43),试采用快速排序法对该组序列作升序排序,并给出每一趟的排序结果。33.请按照数列28,45,33,12,37,20,18,55的先后插入次序,生成一棵二叉排序树。四、算法设计题(本大题共3小题,共14分)34.试编写一算法,以完成在带头结点单链表L中第i个位置前插入元素X的操作。(4分)35.某带头结点的单链表的结点结构说明如下: (6分)typedef struct node1 int data; struct node1 *next node;试设计一个算法int copy(node *head1, node *hea

9、d2),将以head1为头指针的单链表复制到一个不带头结点且以head2为头指针的单链表中。36.若二叉树存储结构采用二叉链表表示,试编写一算法,计算一棵二叉树的所有结点数。(4分)参考答案一、选择题(本题共30分,每题2分)1、 C 2、B 3、C 4、B 5、B 6、C 7、B 8、C 9、A 10、C 11、B 12、D 13、C 14、D 15、A二、填空题(本题共26分,每小题2分)16、树状结构 17、 n-118、逻辑 19、 n/220、数据处理 21、 front=(rear+1)%n22、2k-1,k 23、堆排序24、中序 25、有序26、5 27、冒泡排序28、n-1三

10、、应用题(本题共30分,每小题6分)29、ABCDG后序序列:CDBGFEA (3分)FE(3分)30、push(5);pop(5);push(*);push(-);push(x);pop(x);pop(-);pop(*);push(-);push(y);pop(y);push(/);push(x);pop(x);push(+);pop(+);pop(/);pop(-);push(2);pop(2);ACDEFG32、第1趟: 37 38 73 52 40 64 56 43第2趟: 37 38 43 52 40 64 56 73第3趟: 37 38 40 43 52 64 56 73第4趟:

11、37 38 40 43 52 64 56 73第5趟: 37 38 40 43 52 56 64 73第6趟: 37 38 40 43 52 56 64 7331、BACDEFG A B NULL C ROOT D E F G 33、2812452018335537四、算法设计题(本题共14分)34、(4分)typedef struct node *pointer;struct node datatype data; pointer next;typedef pointer lklist;void insert_lklist(lklist head,datatype x,int i) poin

12、ter *p,*s;p=head; j=0; while(p-next!=NULL)&(jnext;j+; if(j!=i-1) printf(不存在第i个位置); break();else s=malloc(size);s-data=x; s-next=p-next; p-next=s;35、(6分)int copy(node *head1,node *head2) Node *p,*s; P=head1-next; If(p!=NULL) *r=malloc(size); r-data=p-data; head2=r; p=p-next; else head2=NULL; Return(0

13、); While(p!=NULL) *s=malloc(size); s-data=p-data; r-next=s; r=s;p=p-next; r-next=NULL; return(1);36、(4分)typedef char DataType;typedef struct nodeDataType data;struct node *lchild, *rchild; BinTNode;typedef BinTNode *BinTree;int nodes(BinTree T)int num1,num2;if(T=NULL) return(0);else if (T-lchild=NUL

14、L & T-rchild=NULL) return(1);elsenum1=nodes(T-lchild);num2=nodes(T-rchild); return(num1+num2+1);试卷A一、选择题(本题共20分,每小题1分)1在数据结构中,从逻辑上可以把数据结构分成 ( ) 。 A动态结构和静态结构 B. 紧凑结构和非紧凑结构 C. 线性结构和非线性结构 D. 内部结构和外部结构 2线性表若采用链式存储结构时,要求内存中可用存储单元的地址 ( ) 。 A. 必须是连续的 B. 部分地址必须是连续的 C. 一定是不连续的 D. 连续不连续都可以 3不带头结点的单链表 head 为空的

15、判定条件是( ) 。 A. head = NULL B. head-next =NULL C. head-next = head D. head! = NULL 4在一个单链表中,已知 q 所指结点是 p 所指结点的前驱结点,若在 q 和 p 之间插入s 结点,则执行( ) 。 A. s-next=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从一个具有n个结点的单链表中查找其值等于 x 结点时,在查找成功的情况下,需平均比较( )个结点。 A. n B.

16、 n/2 C. (n-1)/2 D. (n+1)/26一个栈的入栈序列是 a,b,c,d,e,则栈的不可能的输出序列是( )。 A. edcba B. decba C. dceab D. abcde 7判定一个循环队列 QU(最多元素为 m0)为满队列的条件是( )。 A. QU-front=QU-rear B. QU-front!=QU-rear C. QU-front=(QU-rear+1) % m0 D. QU-front!=(QU-rear+1) % m0 8栈和队列的共同点是( ) 。 A. 都是先进后出 B. 都是先进先出 C. 只允许在端点处插入和删除元素 D. 没有共同点 9数

17、组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A85的起始地址为( ) 。 A. SA+141 B. SA+144 C. SA+222 D. SA+225 10广义表(a,b),c,d)的表尾是( )。 A. a B. b C. (a,b) D. (c,d) 11设矩阵A是一个对称矩阵,为了节省存储,将其下三角部分(如下图所示)按行序存放在一维数组 B1,n(n-1)/2中,对下三角部分中任一元素 ai,j(ij),在一维数组 B 的下标位置k的值是( )。 A. i(i-1)/2+j-1 B. i(i-1)

18、/2+j C. i(i+1)/2+j-1 D. i(i+1)/2+j 13. 已知某二叉树的后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是( )。 A. acbed B. decab C. deabc D. cedba 12. 如下图所示的 4 棵二叉树中,( )不是完全二叉树。 14. 按照二叉树的定义,具有 3 个结点的二叉树有( )种。 A. 3 B. 4 C. 5 D. 6 15. 设高度为 h 的二叉树上只有度为 0 和度为 2 的结点,则此类二叉树中所包含的结点数至少为( )。 A. 2h B. 2h-1 C. 2h+1 D. h+1 16在一个有向图中

19、,所有顶点的入度之和等于所有顶点的出度之和的( ) 倍。 A. 1/2 B. 1 C. 2 D. 4 17在一个具有 n 个顶点的无向图中,要连通全部顶点至少需要( )条边。 A. n B. n+1 C. n-1 D. n/2 18已知一有向图的邻接表存储结构如下图所示,根据有向图的深度优先遍历算法,从顶点 v1 出发,所得到的顶点序列是 ( )。 A. v1,v2,v3,v5,v4 B. v1,v2,v3,v4,v5 C. v1,v3,v4,v5,v2 D. v1,v4,v3,v5,v2 19. 采用顺序查找方法查找长度为 n 的线性表时,每个元素的平均查找长度为( )。 A. n B. n

20、/2 C. (n+1)/2 D. (n-1)/2 20快速排序方法在( )情况下最不利于发挥其长处。 A. 要排序的数据量太大 B. 要排序的数据中含有多个相同值 C. 要排序的数据已基本有序 D. 要排序的数据个数为奇数 二、填空题(本题共20分,每空1分)1根据数据元素之间的不同特征,通常有四类基本结构:_、_、_和_。 2下面程序段的时间复杂度是:_。 for (i=0;in;i+) for (j=0;jnext=_ ;(2)p-next=s; (3)t=p-data; (4)p-data= _; (5)s-data= _; 5. 深度为 k 的完全二叉树至少有 个结点,至多有 个结点,

21、若按自上而下,从左到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是 。6. 一个广义表为(a,(a,b),d,e,(i,j),k),则该广义表的深度为_。7. 有一棵树如下图所示,回答下面的问题:结点 k3 的度是 ; 这棵树的度为 ;这棵树的深度是 。8在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第 七 个记录 60 插入到有序表时,为寻找插入位置需比较_次。9. 队列的插入操作在_进行,删除操作在_进行。10. 判定一个有向图中是否存在回路,即是否含有环,可以使用_方法。三、阅读程序写结果(本题共20分,每小题5分)1 单链表中,

22、指针p指向某结点,执行以下操作后,请用一句话描述程序执行的结果是什么? q=p-next; p-data=p-next-data; p-next= p-next-next; free(q); 2 阅读下面二分查找程序代码,填充空白位置,使算法完整。 int BinSearch (SeqList R, KeyType k) int low=1,high=n,mid;while(lowk) _; else _; return 0;3 如下图所示给出了图 G 及对应的邻接表,根据给定的 dfs 算法,从顶点 8 出发,写出其搜索序列。Adjlist gl; void dfs(int v) struc

23、t vexnode *p; printf(%d,v); visitedv=1;p=glv-link; /* gl 是该图的邻接表的表头指针数组 */ while (p!=NULL) if (visitedp-adjvex=0) dfs(p-adjvex); p=p-next; 4 二叉树采用二叉链表存储结构,将第四题综合题3中的二叉树,运行下面的递归算法,请写出最后的返回结果是什么?int count (btree *b) int num1,num2; if (b=NULL) return(0); else if (b-left=NULL & b-right=NULL) return (1);

24、 else num1=count (b-left); num2=count (b-right); return (num1+num2); 四、综合题(本题共30分,每小题5分)1. 有一份电文中共使用五个字符:a、b、c、d、e,它们的出现频率依次为 4、7、5、2、9,试画出对应的哈夫曼树(注意:构造哈夫曼树过程中请按左子树根结点的权值小于等于右子树根结点的权值次序构造),并求出每个字符的哈夫曼编码。2. 利用普里姆算法,从节点1出发构造出如下图所示的图 G 的一棵最小生成树。 3. 一棵二叉树如下面的图所示,要求: (1)写出对此二叉树进行中序遍历时得到的结点序列。 (2)画出由此二叉树转

25、换得到的森林。 4请画出,将元素3和元素6依次插入到下图所示的平衡二叉树中的结果,要求仍然保持为一棵平衡二叉树。5. 一组元素为(46,25,78,62,12,37,70,29),要求:(1)画出按元素排列顺序输入生成的一棵二叉排序树。(2)画出在二叉排序树中,删除元素46后的结果6. 设哈希表长度为11,哈希函数h(key)=key % 11。给定的关键字为1,13,12,34,38,33,2,22。试画出用线性探查法解决冲突时所构造的哈希表。并计算在查找成功时候的平均查找长度。五、算法题(本题共10分)假设线性表中包含n个数据元素,请写出顺序存储方式下对n个元素的冒泡排序算法。具体存储结构

26、如下:#define Maxsize 20Typedef int KeyType;Typedef struct KeyType key; /关键字项InfoType otherinfo; /其它数据项 RedType; /记录类型Typedef struct RedType rMaxsize+1; /r0闲置或者用做哨兵单元Int length; /顺序表长度 SqList; /顺序表类型参考答案一、 选择题(本题共20分,每题1分)12345678910CDACDCCCCD11121314151617181920BDCCBBCCCC二、填空题(本题共20分,每空1分)1. 集合、线性结构、树

27、形结构、网状结构2. O(m*n)3. n-i+1 4. p-next s-data t 5. 2 2-1 2+1 6. 3层7. 2 3 4 8. 39. 队尾、对头10. 拓扑排序三、阅读程序写结果(本题共20分,每小题5分1. 删除了p结点2. high=mid-1; low= mid+1;3. 搜索序列为:8,4,2,1,3,6,7,5。 4. 返回结果是2四、综合题(本题共30分,每小题5分)1. 解:依题意,各字符对应的哈夫曼编码以及相应的哈夫曼树结果如下: a:011 b:10 c:00 d:010 e:112. 解:使用普里姆算法构造棵最小生成树的过程如图所示3. 中序遍历的结

28、果是:DEFBAC。 转换的森林如图所示:4. 最终结果如图:5. 46删除之前和删除之后的两个结果分别如下图所示 6. H(1)=1 H(13)=2 H(12)=1 冲突 , H1=2 冲突, H2=3 H(34)=1 冲突 , H1=2 冲突, H2=3 冲突, H3=4 H(38)=5 H(33)=0 H(2)=2 冲突,H1=3 冲突,H2=4 冲突,H3=5 冲突,H4=6 H(22)=0 冲突,H1=1冲突,H2=2 冲突,H3=3 冲突,H4=4 冲突,H5=5冲突,H6=6冲突,H7=7 ASL=(1+1+3+4+1+1+5+8)/8=24/8=3 五、算法题(本题共10分)void BubbleSort (SeqList R) int i,j; Boolean exchange; For( i=1;in;i+) exchange=false;for(j=1;j=n-I;j+) if(Rj+1.keyRj.key) R0=Rj+1; Rj+1=Rj ; Rj=R0; exchange=true;if (!exchange) return; A B NULL C ROOT D E F G ACDEFGACDEFG A B NULL C ROOT D E F G

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服