数据结构模拟题

合集下载

数据结构模拟试题1

数据结构模拟试题1

一、填空题(共20分,每空1分)。

1.数据结构是研究数据元素之间抽象化的相互关系和这种关系在计算机中的存储结构表示,通常有下列四种存储结构:(1)、(2)、(3)和(4)。

2.评价算法的标准很多,通常是以执行算法所需要的(5)和所占用的(6)来判别一个算法的优劣。

3.队列操作的原则是(7),栈的插入和删除操作在(8)进行。

4.对循环队列Q,它的最大存储空间是MAXSIZE,队头指针是front,队尾指针是rear,采用少用一个存储单元的方法解决假溢出时,队满的判断条件是(9),队空的判断条件是(10)。

5.在以head 为表头指针的带有头结点的单链表和循环单链表中,判断链表为空的条件分别为(11)和(12)。

6.假设二维数组A[6][8],每个元素用相邻的4个字节存储,存储器按字节编址,已知A[0][0]的存储位置为100,按行优先顺序存储的元素A[2][5]的第一个字节的地址为(13)。

7.空格串的长度为串中所包含(14)字符的个数,空串的长度为(15)。

8.有向图G 用邻接矩阵A[n][n] 存储表示,其第i 行的所有元素之和等于顶点i 的(16)。

9.在关键字序列(12 ,23 ,34 ,45 ,56 ,67 ,78 ,89 ,91) 中折半查找关键字为89和25的结点时,所需进行的比较次数分别为(17)和(18)。

10.请说出两种处理哈希冲突的方法(19)、_(20)_。

二、选择题(共20分,每题2分)。

1.对线性表,在下列哪种情况下应采用链式存储结构?()A.经常需要随机存取元素B.经常需要进行插入和删除操作C.表中元素的个数不变D.表中元素需要占据一片连续的存储空间2.从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功情况下,则平均比较()个结点。

A.nB.n/2C.(n-1)/2D.(n+1)/23.若对某线性表最常进行的操作是在最后一个元素之后插入和删除第一个元素,则采用()存储方式最节省运算时间。

数据结构模拟试题(1)

数据结构模拟试题(1)

(1)
(2)
(3)
(4)
参考答案:
(0) [30 18 20 15 38 12 44 53 46 18* 26 86]
(1) [18 30][15 20][12 38][44 53][18* 46][26 86]
(2) [15 18 20 30][12 38 44 53][18* 26 46 86]
A:n-I B:n-I+1
C:n-i-1 D:I
7、 不带头结点的单链表first为空的判定条件是( )。
A:first == NULL; B:first->link == NULL;
C:first->link == first; D:D. first != NULL;
8、 树中所有结点的度之和等于所有结点数加( )。
A:0 B:1
C:-1 D:2
9、 一棵具有35个结点的完全二叉树的高度为( )。假定空树的高度为 -1。
A:5 B:6
C:7 D:8
数据结构模拟试题(1)
一、填空题:06分,每题02分
1、 从一个具有n个结点的单链表中搜索其值等于x的结点时, 在搜索成功的情况下, 需平均比较_______次。
2、 根据一组记录(56,42,50,64,48)依次插入结点生成一棵AVL树时,当插入到值为_______的结点时需要进行旋转调整。
31、 已知一个数据表为{48,25,56,32,40},请写出在进行快速排序的过程中每次划分后数据表的变化。
(0) [48 25 56 32 40]
(1)
(2)
(3)
参考答案:
(0) [48 25 56 32 40]

数据结构模拟试卷及参考答案

数据结构模拟试卷及参考答案

数据结构模拟试卷(一)及参考答案一.单项选择题(本大题共15小题,每小题2分,共30分)1.如果只想得到1024个元素组成的序列中的前5个最小元素,那么用( A )方法最快。

A、起泡排序B、快速排序C、堆排序D、直接选择排序2.算法分析的目的是(B)A.辨别数据结构的合理性B.评价算法的效率C.研究算法中输入与输出的关系D.鉴别算法的可读性3.在线性表的下列运算中,不改变数据元素之间结构关系的运算是(C)A.插入B.删除C.定位D.排序4.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为(D)A.3,2,6,1,4,5 B.5,6,4,2,3,1C.1,2,5,3,4,6 D.3,4,2,1,6,55.设串sl=″DataStructureswithJava″,s2=″it″,则子串定位函数index(s1,s2)的值为(A)A.15 B.16 C.17 D.186.一个顺序存储的线性表的第一个元素的存储地址是100,每个元素的长度为4,则第4个元素的存储地址是(B)。

A. 108B. 112C. 116D. 1207.从一个具有n个结点的单链表中查找其值等于x的结点,在查找成功的情况下,平均需要比较(C)个结点。

A. nB. n/2C. (n+1)/2D. (n-1)/28.在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系(D)A.不一定相同 B.互为逆序C.都不相同D.都相同9.高度为5的二叉树至多有结点数为(A)A. 63B. 32C. 24D.6410.若用邻接矩阵表示一个有向图,则其中每一列包含的″1″的个数为(B)A.图中每个顶点的出度B.图中每个顶点的入度C.图中弧的条数D.图中连通分量的数目11.图的邻接矩阵表示法适用于表示(C)A.无向图B.有向图C.稠密图D.稀疏图12.在一个单链表中,若p所指的结点不是最后一个结点,在p之后插入s所指的结点,则执行(D)。

数据结构模拟试卷(含答案)

数据结构模拟试卷(含答案)

数据结构设计课程代码:7399一、单项选择题(在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。

每小题2分,共40分)1、串的长度是()。

A、串中不同字母的个数B、串中不同字符的个数C、串中所含字符的个数,且大于0D、串中所含字符的个数2、若用数组S[1..n]作为两个栈S1和S2的共同存储结构,对任何一个栈,只有当S全满时才不能作入栈操作。

为这两个栈分配空间的最佳方案是()。

A、S1的栈底位置为0,S2的栈底位置为n+1B、S1的栈底位置为0,S2的栈底位置为n/2C、S1的栈底位置为1,S2的栈底位置为nD、S1的栈底位置为1,S2的栈底位置为n/23、队列操作的原则是()。

A、先进先出B、后进先出C、只能进行插入D、只能进行删除4、有64个结点的完全二叉树的深度为()(根的层次为1)。

A、8B、7C、6D、55、在有n个结点的二叉链表中,值为非空的链域的个数为()。

A、n-1B、2n-1C、n+1D、2n+16、带权有向图G用邻接矩阵A存储,则顶点i的人度等于A中()。

A、第i行非∞的元素之和B、第i列非∞的元素之和C、第i行非∞且非0的元素个数D、第i列非∞且非0的元素个数7、在有n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为()。

A、0(n)B、0(log2n)C、0(nolg2n)D、0(n2)8、若表R在排序前已按键值递增顺序排列,则()算法的比较次数最少。

A、直接插入排序B、快速排序C、归并排序D、选择排序9、下列排序算法中,()排序在某趟结束后不一定选出一个元素放到其最终的位置上。

A、选择B、冒泡C、归并D、堆10、若线性表最常用的操作是存取第i个元素及其前趋的值,则采用()存储方式节省时间。

A、单链表B、双链表C、单循环链表D、顺序表11、对二叉树从1开始进行连续编号,要求每个结点的编号大于其左右孩子的编号,同一个结点的左右孩子中,其左孩子的编号小于其右孩子的编号,则可采用()遍历实现编号。

计算机数据结构考试题及答案

计算机数据结构考试题及答案

全真模拟试题(一)一、单项选择题(在每小题的4个备选答案中,选出正确的答案,并将其号码填在题干的括号内。

每小题2分,共24分)1.若某线性表中最常用的操作是取第i 个元素和找第i个元素的前趋元素,则采用()存储方式最节省时间。

①单链表②双链表③单向循环④顺序表2.串是任意有限个()①符号构成的序列②符号构成的集合③字符构成的序列④字符构成的集合3.设矩阵A(aij ,l≤i,j≤ 10)的元素满足:aij≠0(i≥j, l≤i, j≤ 10)aij=0 (i<j, l≤i, j≤ 10)现将A的所有非0元素以行序为主序存放在首地址为2000的存储区域中,每个元素占有4个单元,则元素A[9][5]的首址为①2340 ②2336 ③2164 ④21604.如果以链表作为栈的存储结构,则退栈操作时()①必须判别栈是否满②对栈不作任何判别③必须判别栈是否空④判别栈元素的类型5.设数组Data[0..m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为()①front=front+1 ②front=(front+1)% m③rear=(rear+1)%m ④front=(front+1)%(m+1)6.深度为6(根的层次为1)的二叉树至多有()结点。

①64 ②32 ③31 ④637.将含100个结点的完全二叉树从根这一层开始,每层上从左到右依次对结点编号,根结点的编号为1。

编号为49的结点X的双亲编号为()①24 ②25 ③23 ④无法确定8.设有一个无向图G=(V,E)和G’=(V’,E’)如果G’为G的生成树,则下面不正确的说法是()①G’为G 的子图②G’为G 的边通分量③G’为G的极小连通子图且V’=V④G’为G的一个无环子图9.用线性探测法查找闭散列表,可能要探测多个散列地址,这些位置上的键值()①一定都是同义词②一定都不是同义词③都相同④不一定都是同义词10.二分查找要求被查找的表是()①键值有序的链接表②链接表但键值不一定有序③键值有序的顺序表④顺序表但键值不一定有序11.当初始序列已经按键值有序,用直接插入算法对其进行排序,需要循环的次数为()①n2 ②nlog2n ③log2n ④n-112.堆是一个键值序列{k1,k2,…, kn},对i=1,2,…,|_n/2_|,满足( )①ki≤k2i≤k2i+1②ki<k2i+1<k2i③ki≤k2i且ki≤k2i+1(2i+1≤n)④ki≤k2i 或ki≤k2i+1(2i+1≤n)二、判断题(判断下列各题是否正确,正确在括号内打“V”,错的找“X”。

数据结构模拟考试试卷

数据结构模拟考试试卷

数据结构模拟考试试卷(1卷)一.判断题(下列各题,正确的请在前面的括号内打√;错误的打×)(√)(1)数据的逻辑结构与数据元素本身的内容和形式无关。

(ㄨ)(2)线性表的链式存储结构优于顺序存储。

(√)(3)将中缀表达式转换成后缀表达式是栈的重要应用。

(×)(4)栈和队列都是顺序存储的线性结构。

(×)(5)“DT”是“DA TA”的子串。

(×)(6)在二叉树中,具有一个子女的父结点,在中序遍历的序列中,它没有后继子女结点。

(×)(7)带权图的最小生成树是唯一的。

(√)(8)散列存储法的基本思想是由关键字的值决定数据的存储地址。

(√)(9)希尔排序是不稳定的排序。

(√)(10)具有n个叶子结点的哈夫曼树共有2n-1个结点。

二.填空题1.线性结构中元素之间存在一对一关系。

2.树形结构和图形结构合称为:非线性结构。

3.顺序表中逻辑上相邻的元素在物理位置上必须相连。

4.在单链表中要在已知结点*P之前插入一个新结点,需找到*P的直接前趋结点的地址,其查找的时间复杂度为O (n) 。

5.同一栈的各元素的类型相同。

6.已知表达式,求它的后缀表达式是栈的典型应用之一。

7.队列在进行出队操作时,首先要判断队列是否为空。

8.设循环队列的头指针front指向队头元素,尾指针rear指向队尾元素后的一个空闲元素,队列的最大空间为MAXLEN,则队满标志为front==(rear+1)% MAXLEN 。

9.串的链式存储结构简称为链式串。

10.求子串函数SubStr("Today is 30 July,2005",13,4)的结果是:July 。

11.给定如下图所示的二叉树,其层次遍历序列为:ABCEFGH 。

12.将一棵完全二叉树按层次编号,对于任意一个编号为i的结点,该结点右孩子的编号为:2*i+1 。

13.图的遍历有:深度优先搜和 _广度优先搜 __等方法。

数据结构模拟题(开卷)

数据结构模拟题(开卷)

数据结构模拟题(开卷)《数据结构》模拟题(开卷)⼀、单项选择题1.分析下列算法suanfa1(n):void suanfa1(int n){ int i,j,x=1;for(i=0;ifor(j=0;jx=x*2;printf("%d",x)}其中语句"x=x*2;"的执⾏次数是( D )。

A.(n*2)2B.(n-1)2C.(n+1)2D.n22.折半查找有序表(16,20,30,35,40,46,60,80),若查找元素80,需依次与表元素( D )进⾏⽐较。

A.35,46,80B.40,60C.40,60,80D.35,46,60,803.对长度为10的表作选择(简单选择)排序,共需⽐较( A )次关键字。

A.45B.90C.10D.1104.下列算法suanfa2(n)的时间复杂度为( A )。

int suanfa1(int n){ int i,x=0;for (i=0;i<5;i++)for (j=1;j<=n;j++)x+=2;return x;}A.O(n)B.O(n5)C.O(5n)D.O(n2)5.线性表在( B )时, 宜⽤顺序表作存储结构。

A.经常作插⼊、删除B.经常随机存取C.⽆⾜够连续存储空间D.经常作动态查找6.设⼴义表LS=((a,b),c,(d,e)),执⾏操作GetTail(GetHead(LS))后的结果是( A )。

A.(b)B.bC.(c,(d,e))D.(a,b)7.深度为k的满⼆叉树有( C )个叶⼦。

A.k2-1B.2K-1-1C.2K-1D.k28.有16个顶点的⽆向图最多可能有( D )个连通分量。

A.32B.8C.256D.169. ( C )是'Hua**Zhong**Da'的⼦串。

A.HuaB.zhongC.'*Da'D.'HuaZhongDa'10.字符串的长度指的是串中( B )的个数。

数据结构专升本模拟题及答案

数据结构专升本模拟题及答案

作业题(一)一、单项选择题1. 从逻辑上可以把数据结构分为()两大类。

A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构2. 链表不具有的特点是()A.插入、删除不需要移动元素B.可随机访问任一元素C.不必事先估计存储空间D.所需空间与线性长度成正比3.下面程序段的时间复杂度的量级为()。

For(i=1;i<=n;i++)For(j=1;j<=I;j++)For(k=1;k<=j;k++)X=x+1;A.O(1) B.O(n)C.O(n²) D.O(n³)4.在一个带头结点的双向循环链表中,若要在p所指向的结点之前插入一个新结点,则需要相继修改()个指针域的值。

A.2 B.3C.4 D.65、一个顺序存储线性表的第一个元素的存储地址是90,每个元素的长度是2,则第6个元素的存储地址是()。

A.98 B.100C.102 D.1066、判定一个栈s(最多元素为m0)为空的条件是()。

A.s-〉top! =0 B.s-〉top= =0C.s-〉top! =m0 D.s-〉top= =m07、循环队列用数组A[m](下标从0到m-1)存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是()。

A.(rear-front+m)%m B.rear-front+1C.rear-front-1 D.rear-front8、设有两个串S1与S2,求串S2在S1中首次出现位置的运算称作()。

A.连接B.求子串C.模式匹配D.判子串9、设串S1='ABCDEFG',S2='PQRST',函数con(x,y)返回x和y串的连接串,subs(s,i,j)返回串S的的从序号i的字符开始的j个字符组成的子串,len(s)返回串S的长度,则con(subs(S1,2,len(S2)),subs(S1,len(S2),2))的结果是()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构试题(A)参考答案班别学号姓名成绩一、单项选择(每小题2分,共24分)1.若某线性表的常用操作是取第i个元素及其前趋元素,则采用( A )存储方式最节省时间A.顺序表B.单链表C.双链表D.单向循环2.串是任意有限个( B )A.符号构成的序列B.字符构成的序列C.符号构成的集合D.字符构成的集合3.设矩阵A(aij,1<=i,j<=10)的元素满足:aij<>0(i>=j,1<=i,j<=10),aij =0 (i<j,1<=i,j<=10)若将A的所有非0元素以行为主序存于首地址为2000的存储区域中,每个元素占4个单元,则元素A[59]的首地址为( C )A.2340B.2336C.2220D.21604.如果以链表作为栈的存储结构,则退栈操作时( D )A.必须判别栈是否满干B.对栈不作任何判别C.判别栈元素的类型D.必须判别栈是否空5.设数组Data[0..m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为( A )A.front=(front+1)%(m+1)B.front=(front+1)% mC.rear=(rear+1)% mD. front=front+16.深度为6(根的层次为1)的二叉树至多有( B )结点A.64B.63C.31D.327.将含100个结点的完全二叉树从根这一层开始,每层从左至右依次对结点编号,根结点的编号为1。

编号为47的结点X的双亲的编号为( C )A.24B.25C.23D.2无法确定8.设有一个无向图G=(V,E)和G'=(V',E'),如果G'为G的生成树,则下面不正确的说法是( D)A.G'为G的子图B.G'为G的一个无环子图C.G'为G的极小连通子图且V'=VD.G'为G的连通分量9.用线性探测法查找闭散列上,可能要探测多个散列地址,这些位置上的键值( D )A.一定都是同义词B.一定都不是同义词C.都相同D.不一定都是同义词10.二分查找要求被查找的表是( C )A.键值有序的链接表B.链接表但键值不一定有序表C.键值有序的顺序表D.顺序表但键值不一定有序表11.当初始序列已经按键值有序,用直接插入法对其进行排序,需要比较的次数为( B )A. n2B. n-1C. log2nD. nlog2n12.堆是一个键值序列{K1,K2,...,Ki,...,Kn},对i=1,2,...,└ n/2 ┘,满足( A)A. Ki<=K2i且Ki<=K2i+1(2i+1<=n)B.Ki<K2i<K2i+1C. Ki<=K2i或Ki<=K2i+1(2i+1<=n)D.Ki<=K2i<=K2i+1二、判断题(正确的在括号内打"V",错的在括号内打"X",每小题1分,共10分)1.双链表中至多只有一个结点的后继指针为空( V )2.在循环队列中,front指向队列中第一个元素的前一位置,rear指向实际的队尾元素,队列为满的条件是front=rear( X )3.对线性表进行插入和删除操作时,不必移动结点。

( X )4.队可以作为对树的层次遍历的一种数据结构。

( V )5.在一个有向图的拓朴序列中,若顶点a在顶点b之前,则图中必有一条弧<a,b>。

( X )6.对有向图G,如果从任一顶点出发进行一次深度优先或广度优先搜索就能访问每个顶点,则该图一定是完全图。

( X )7."二分查找法"必需在有序表上进行。

( V )8.向二叉排序树中插入一个新结点时,新结点一定成为二叉排序树的一个叶子结点。

( V )9.键值序列{A,C,D,B,E,E,F}是一个堆。

( X )10.在二路归并时,被归并的两个子序列中的关键字个数不一定相等。

( V )三、填空题(每空2分,共24分)1.设r指向单链表最后一个结点,要在最后一个结点之后插入s所指的结点,需执行的三条语句是r->next=s ; r=s; r->next=NULL 。

2.在带头结点单链表L中,表空的条件是L->next==NULL3.设一个链栈的栈顶指针为ls,栈中结点格式为info│link ,栈空的条件是ls==NULL。

若栈不空,则退栈操作为p=ls;ls=ls->link;free(p).4.已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树中有12个叶子结点。

5.树有三种常用的存储结构,即孩子链表法,孩子兄弟链表法和双亲表示法。

6.n-1个顶点的连通图的生成树有n-2条边。

7.一个有向图G中若有弧<Vj,Vi>、<Vi,Vk>和<Vj,Vk>,则在图G的拓朴序列中,顶点Vi,Vj 和Vk的相对位置为Vj->Vi->Vk。

8.设表中元素的初始状态是按键值递增的,分别用堆排序、快速排序、冒泡排序和归并排序方法对其进行排序(按递增顺序),冒泡排序最省时间,快速排序最费时间。

9.下面是将键值为X的结点插入到二叉排序树中的算法,请在划线处填上适当的内容。

typedef struct node *pnodestruct node{ int key;pnode left,right;}void searchinsert(int x; pnode t);//t为二叉排序树根结点的指针//{ if(t=NULL ){ p=malloc(size); p->key=x; p->left=nil; p->right=nil; t=p;}else if (x<t->key) searchinsert(x,t->left)else searchinsert(x,t-> right);}四、应用题(本题共28分)1.给定权值{5,10,12,15,30,40},构造相应的哈夫曼树,要求写出构造步骤。

(4分)哈夫曼树构造步骤:2.已知一表为(Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec),按表中顺序依次插入初始为空的二叉排序树,要求:(1)在右边画出建立的二叉排序树。

(4分)(2)求出在等概率情况下查找成功的平均查找长度。

(2分)ASL SU=(1+2*2+3*3+4*3+5*2+6)/12=42/12=3.53.下图表示一个地区的交通网,顶点表示城市,边表示连结城市间的公路,边上的权表示修建公路花费的代价。

怎样选择能够沟通每个城市且总造价最省的n-1条公路,画出所有可能的方案.(4分)4.已知一个无向图的邻接表为:(本题4分,每小题2分)(1)画出这个图。

(2)以V1为出发点,对图进行广度优先搜索,写出所有可能的访问序列。

V1->V2->V4->V5->V3V1->V4->V2->V3->V55.设n个元素的有序表为R,K为一个给定的值,二分查找算法如下:int binsearch(sqlist R; keytype K:);{l=1; h=n; suc=false;while (l<=h)&&(!suc) do{ mid=(l+h)/2;caseK=R[mid].key: suc=true;K<R[mid].key: h=mid-1;K>R[mid].key: l=mid+1end }if (suc) return(mid) else return(0)}将上述算法中划线语句改为:K<R[mid].key: h=mid.问改动后,算法能否正常工作?请说明原因。

若能正常工作,请给出一个查找序列和查找某个键值的比较次数.(本题4分)答:(1)若K在R中或大于R中的最大值,则算法能正常运行;若K不在R中或小于R中的最大值,则算法不能正常运行,会出现死循环;(2)如:在[2,4,6,8]中,当K=7时,算法出现死循环;当K=6时,算法能正常运行,查找成功,比较次数为2次。

6.有一组键值27,84,21,47,15,25,68,35,24,采用快速排序方法由小到大进行排序,请写出每趟的结果,并标明在第一趟排序过程中键值的移动情况。

(本题共6分)答:(1)每趟的结果:(2)第一趟排序键值移动情况:五、设计题(本题共14分)1.一棵二叉树以二叉链表为存储结构lchild│data│rchild 。

设计一个算法,求在前序序列中处于第K个位置的结点。

(本题6分)类型定义如下:typedef struct node * pointer ;struct node{ datatype data ;pointer lchild, rchild ;}typedef pointer bitreptr ;算法如下:void pre ( bitreptr t ; int k; bitreptr p ){ if ( t!=NULL ){ i=i+1;if ( i==k){ p=t; return(p);}pre(t->lchild, k,p ) ;pre(t->rchild, k,p ) ;}}2.某单链表L的结点结构为 data│next ,结点个数至少3个,试画出该链表的结构图,并编写算法判断该链表的元素是否成等差关系,即:设各元素值依次为a1,a2,...,an, 判断ai+1-ai=ai-ai-1是否成立,其中i满足2<=i<=n-1。

(8分)结构图: (略)算法如下:int dcsl(lklist L){ p=L; q=p->next; r=q->next;while ( r!= NULL)if ((p->data)-(q->data) != (q->data)-(r->data)) return(0);else { p=q; q=r; r=r->next; }return(1);}。

相关文档
最新文档