2017年数据结构期末考试题及答案A

合集下载

数据结构 试题(A)-答案

数据结构 试题(A)-答案
评分标准:有向图、无向图两种存储方式各占4分。
3.建立平衡二叉树过程如图2所示(图中加阴影的结点表示要调整的结点)。
图2构造平衡二叉树过程
评分标准:每次调整占1分。
4.答:不能。因为在这里,二分查找只减少了关键字间的比较次数,而记录的移动次数不变,时间的复杂度仍为O(n2)。
评分标准:答对“不能”占3分,说明理由占5分。
A.872B.860
C.868D.864
8.一个具有1025个结点的二叉树的高h为。
A.11B.10
C.11~1025D.12~1024
9.一棵二叉树的后序遍历序列为DABEC,中序遍历序列为DEBAC,则先序遍历序列为。
A.ACBEDB.DECAB
C.DEABCD.CEDBA
10.对图1所示的无向图,从顶点1开始进行深度优先遍历;可得到顶点访问序列。
2.给出如下各种情况下求任意一个顶点的度的过程(只需文字描述):(8分)
(1)含n个顶点的无向图采用邻接矩阵存储;
(2)含n个顶点的无向图采用邻接表存储;
(3)含n个顶点的有向图采用邻接矩阵存储;
(4)含n个顶点的有向图采用邻接表存储。
3.将整数序列{4,5,7,2,1,3,6}中的数依次插入到一棵空的平衡二叉树中,试构造相应的平衡二叉树。(要求画出每个元素插入过程,若需调整,还需给出调整后的结果,并指出是什么类型的调整,12分)
A.输出第i(1≤i≤n)个元素值
B.交换第1个元素与第2个元素的值
C.顺序输出这n个元素的值
D.输出与给定值x相等的元素在线性表中的序号
4.设n个元素进栈序列是p1,p2,p3,…,pn,其输出序列是1,2,3,…,n,若p3=3,则p1的值。
A.可能是2B.一定是2

《数据结构》期末考试试题及答案

《数据结构》期末考试试题及答案

《数据结构》期末考试试题及答案一、单项选择题1. 数据结构是计算机科学的基础学科之一。

下列哪个选项正确描述了数据结构的定义?A. 数据结构是一种计算机程序B. 数据结构是一种存储和组织数据的方法C. 数据结构是一种人工智能技术D. 数据结构是一种操作系统答案:B2. 链表和数组是常见的数据结构,它们之间的主要区别是:A. 数组可以存储不同类型的数据,而链表只能存储相同类型的数据B. 数组的元素在内存中是连续存储的,而链表的元素在内存中是分散存储的C. 链表可以随机访问元素,而数组只能顺序访问元素D. 链表的插入和删除操作更高效,而数组的访问操作更高效答案:B3. 在二叉树中,每个节点最多可以有多少个子节点?A. 1B. 2C. 3D. 无限多个答案:B二、填空题1. 假设有一组数据 [5, 8, 3, 2, 9],按照从小到大的顺序进行冒泡排序的过程中,经过三次交换后的结果是__2__,__3__,__5__,__8__,__9__。

2. 请完成以下代码,实现栈的入栈和出栈操作:```pythonclass Stack:def __init__(self):self.stack = []def push(self, item):self.stack.append(item)def pop(self):if not self.is_empty():return self.stack.pop()def is_empty(self):# 示例代码s = Stack()s.push(1)s.push(2)s.push(3)print(s.pop()) # 输出 3print(s.pop()) # 输出 2print(s.is_empty()) # 输出 False ```答案:```pythonclass Stack:def __init__(self):self.stack = []def push(self, item):self.stack.append(item)def pop(self):if not self.is_empty():def is_empty(self):return len(self.stack) == 0# 示例代码s = Stack()s.push(1)s.push(2)s.push(3)print(s.pop()) # 输出 3print(s.pop()) # 输出 2print(s.is_empty()) # 输出 False```三、简答题1. 请简要介绍树的基本概念及常见的树结构。

数据结构期末试卷以及答案

数据结构期末试卷以及答案

A、 1
B、 2
C、 3
D、 4
答案: D
5、以下属于逻辑结构的是
A、顺序表
B、 哈希表
C.有序表
D、 单链表
答案: C
6、已知一个顺序存储的线性表,设每个结点需占 m 个存储单元,若第一个结点的地址为
da1,则第 I 个结点的地址为
A、da1+(I-1)*m
B、da1+I*m
C、da1-I*m
D、da1+(I+1)*m
试卷答案 第 4 页 (共 7 页)
T r=k
p
q
size size size
size
int rank(tree T, node*x)
(//在二叉排序树中边查找边计算结点的中序序号
int r;
if(T->lchlid) r=T->lchild->size+l,∥计算出根结点的 r
else r=l;
If(T->rchild){ //计算所转到的右孩子的 r 值
T=T>rchild:
r=r+T->lchild->size;
}
Else //右孩子为空.则此二叉排序树中没有 r 结点
Return false;
} else
//找到 x 结点,此时的 r 即为 x 的中序序号
return r;
}//end while
试卷答案 第 2 页 (共 7 页)
} template <class Type> Type * DblStack<Type> :: DblGetTop ( int i ) { //若栈不空则函数返回该栈栈顶元素的地址。 if ( IsEmpty ( int i ) ) return NULL; //判栈 i 空否, 若栈空则函数返回空指针 return& elements[ top[i] ]; //返回栈顶元素的值 } template <class Type> void MakeEmpty ( int i ) { if ( i == 0 ) top[0] = bot[0] = -1; else top[1] = bot[1] = m; } 2、在平衡二叉排序树的每个结点中增设一个 lsize 域,其值为它的左子树中的结点数加 1。 试写一时间复杂度为 O(logn)的算法,确定树中第 k 小的结点的位置。 答案:typedef struct {

期末数据结构试题及答案

期末数据结构试题及答案

期末数据结构试题及答案期末数据结构试题(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若将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.KiC. 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)rear=front->next;3.对线性表进⾏插⼊和删除操作时,不必移动结点。

数据结构期末考试试题及答案

数据结构期末考试试题及答案

数据结构期末考试试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,算法的时间复杂度是指()。

A. 编写代码的时间B. 代码的长度C. 执行代码所需的时间D. 执行代码所需的指令条数2. 下列关于队列的描述,错误的是()。

A. 队列是先进先出(FIFO)的线性表B. 队列允许在一端进行插入操作C. 队列的插入操作称为入队D. 队列的删除操作称为出栈3. 对于长度为n的有序数组,使用二分查找法查找一个元素的平均时间复杂度是()。

A. O(n)B. O(n^2)C. O(log n)D. O(1)4. 在图的遍历中,深度优先搜索(DFS)使用的数据结构是()。

A. 栈B. 队列C. 链表D. 数组5. 哈希表的冲突可以通过多种方式解决,以下哪种不是解决冲突的方法?()A. 开放寻址法B. 链地址法C. 线性探测法D. 排序法6. 一个完全二叉树共有700个节点,它的最大节点数是()。

A. 700B. 701C. 1400D. 14017. 快速排序算法的最坏情况发生在()。

A. 每次选择的基准都是最大值B. 数据已经有序C. 数据已经完全逆序D. 所有数据元素相等8. 在一个具有n个节点的二叉搜索树中,最坏情况下查找一个元素的时间复杂度是()。

A. O(n)B. O(log n)C. O(n^2)D. O(1)9. 堆排序算法中,将一个堆调整为最大堆或最小堆的过程称为()。

A. 堆调整B. 堆构建C. 堆分解D. 堆维护10. 以下哪个不是B树的特性?()A. 所有键值都存储在内部节点和叶子节点中B. 所有叶子节点都在同一层上C. 每个内部节点至多有m个子节点D. 每个内部节点的非叶子子节点都至少有m/2个子节点二、简答题(每题5分,共30分)1. 什么是递归?请举例说明递归算法的应用场景。

2. 请简述图的邻接矩阵和邻接表两种存储方式的优缺点。

3. 解释什么是平衡二叉树,并说明它为什么在实际应用中很重要。

数据结构期末考试及答案

数据结构期末考试及答案

一、单选题1、逻辑上通常可以将数据结构分为( )A.初等结构和组合结构B.顺序结构和链式结构C.线性结构和非线性结构D.动态结构和静态结构正确答案:C2、如果在数据结构中每个数据元素只可能有一个直接前驱,但可以有多个直接后继,则该结构是()。

A.栈B. 队列C.图D.树正确答案:D3、在长度为n的顺序表的第i个位置上插入一个元素(1<=i<=n+1),元素的移动次数为:()A.n-iB.i-1C.n-i+1D.i正确答案:C4、在非空线性链表中由p所指结点的后面插入一个由q所指的结点,应依次执行()A.q->next=p;p->next=q;B.p->next=q;q->next=p;C.q->next=p->next;p->next=q;D.q->next=p->next;p=q;正确答案:C5、已知栈的最大容量为4。

若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为()A.2,3,5,6,1,4B.1,4,6,5,2,3C.5,4,3,2,1,6D.3,2,5,4,1,6正确答案:D6、设栈S和队列Q初始均为空,若6个元素入栈的顺序为1、2、3、4、5、6,一个元素出栈以后立即入队列Q,若6个元素出队的顺序为2、4、3、6、5、1,则栈S的容量至少为()A.3B.5C.4D.2正确答案:A7、在计算机内实现递归算法时所需的辅助数据结构是()A.队列B.栈C.图D.树正确答案:B8、循环队列存储在数组A[0..m-1],则出队时的操作为()A.front=(front mod m)+1B.ront=(front+1)mod mC.front=front+1D.front=(front+1)mod (m-1)正确答案:B9、若以S和X分别表示进栈和退栈操作,则对初始状态为空的栈可以进行的栈操作系列合法的是()A.SXXSXSSXB.SSSXXSXXC.SXSSXXXXD.SXSXXSSX正确答案:B10、在具有m个单元的循环队列中,队头指针为front,队尾指针为rear,则队满的条件是()A.(front+1)%m==rearB.(rear+1)%m==frontC.front==rearD.rear+1==front正确答案:B11、在表长为n的顺序表上做插入运算,平均要移动的结点数为()A.n/4B.nC.n/3D.n/2正确答案:D12、元素的进栈次序为A,B,C,D,E,则退栈中不可能的序列是()A.E,D,C,B,AB.A,B,C,D,EC.E,A,B,C,DD.B,C,D,E,A正确答案:C13、下述二叉树中,()满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序。

2017《数据结构》期末考试试题及答案

2017《数据结构》期末考试试题及答案

2017《数据结构》期末考试试题及答案《数据结构》期末考试试题及答案1 (2)试题1答案 (7)《数据结构》期末考试试题及答案2 (9)试题2答案 (14)《数据结构》期末考试试题及答案3 (16)试题3答案 (21)《数据结构》期末考试试题及答案1一、单选题(每题2 分,共20分)1.栈和队列的共同特点是( )。

A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。

A.688 B.678 C.692 D.6965.树最适合用来表示( )。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

数据结构 本-国家开放大学中央电大2017年秋季学期“本科”期未考试试卷及答案

数据结构 本-国家开放大学中央电大2017年秋季学期“本科”期未考试试卷及答案

c.插入元素的操作不需要移动元素
720
D. 删除元素的操作需要移动元素
5. 图状结构中数据元素的位置之间存在(
)的关系。
A. 一对一
B. 多对多
C. 一对多
D. 每一个元素都有一个直接前驱和一个直接后继
6. 元素 15 , 9 , 11 , 13 按顺序依次进找,则该校的不可能输出序列是( 交替进行)。
typedef struct int key;
}NODE;
int Binary_Search(NODE a[ ], int n , int k)
int low , mid , high; low=O; high=n-1 ; while( (1)
m 山
d〕 a( h「 ι一
?、
",
-
L
U 且
E
VJ
一 一
最小元素〉的方法建立的初始堆(要求以完全二叉树描述)。 (2) 对关键字序列 (26 , 59 , 36 , 18 , 20 , 64) 采用快速排序,给出以第一个关键字为分割元
素,经过一次划分后的结果。
|得分|评卷人|
|I I
四、程序填空题(每空 2 分,共 16 分}
25. 以下函数在 a[O] 到 a[n-1] 中,用折半查找算法查找关键宇等于 k 的记录,查找成功 返回该记录的下标,失败时返回一1,完成程序中的空格
void lnorder (struct BTreeNode 铃 BT)
if( BT! = NULL) {
(1) (2)
Inorder(BT 一一 >right); } 利用上述程序对图 2 进行先序遍历,结果是 (3)
o
图2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2017年数据结构期末考试题及答案
一、选择题(共计50分,每题2分,共25题)
1 •在数据结构中,从逻辑上可以把数据结构分为 C 。

A. 动态结构和静态结构B•紧凑结构和非紧凑结构
C.线性结构和非线性结构 D .内部结构和外部结构
2•数据结构在计算机内存中的表示是指 A °
A. 数据的存储结构
B.数据结构
C.数据的逻辑结构 D .数据元
素之间的关系
3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。

A. 逻辑B•存储 C.逻辑和存储 D.物理
4 .在存储数据时,通常不仅要存储各数据元素的值,而且还要存储
C °
A.数据的处理方法B•数据元素的类型
C.数据元素之间的关系
D.数据的存储方法
5. 在决定选取何种存储结构时,一般不考虑 A °
A.各结点的值如何B•结点个数的多少
C•对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。

6. 以下说法正确的是D °
A. 数据项是数据的基本单位
B. 数据元素是数据的最小单位
C. 数据结构是带结构的数据项的集合
D. —些表面上很不相同的数据可以有相同的逻辑结构
7. 在以下的叙述中,正确的是B °
A. 线性表的顺序存储结构优于链表存储结构
B. 二维数组是其数据元素为线性表的线性表
C•栈的操作方式是先进先出
D.队列的操作方式是先进后出
8. 通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着
A. 数据元素具有同一特点
B. 不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致
C. 每个数据元素都一样
D. 数据元素所包含的数据项的个数要相等
9 •链表不具备的特点是 A 。

A.可随机访问任一结点
B.插入删除不需要移动元素
C•不必事先估计存储空间 D.所需空间与其长度成正比
10. 若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一
个结点,则采用 D 存储方式最节省运算时间。

A.单链表B •给出表头指针的单循环链表 C.双链表D •带头结点
的双循环链表
11. 需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。

A.单链表B .静态链表 C.线性链表 D .顺序存储结构
12 .非空的循环单链表head的尾结点(由p所指向)满足C 。

A. p—>next 一NULL
B. p — NULL
C. p—>next == head
D. p = = head
13 .在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。

A .p—> prior-> prior=s
B .p—> prior-> n ext=s
C.s —> prior—> n ext = s
D.s —> prior—> prior = s
14 .栈和队列的共同点是C 。

A.都是先进后出 B .都是先进先出
C.只允许在端点处插入和删除元素 D .没有共同点
15 . 一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是C
A . edcba
B . decba
C . dceab D. abcde
16 . 一个队列的入队序列是1, 2, 3, 4,则队列的输出序列是B
A. 4, 3, 2, 1 B . 1, 2, 3, 4 C. 1, 4, 3, 2 D . 3, 2, 4, 1
17.
在循环队列中,若front 与rear 分别表示对头元素和
队尾元素的位置, 则判断循环队列空的条件是 C 。

A. front == rear + 1 B . rear = = front + 1 C . front == rear D. front = = 0 18. 若串S =' software ' 其子串的数目是
B
20.串是一种特殊的线性表,其特殊性体现在 B A.可以顺序存储 B.数据元素是一个字符 C.可以链式存储
D.数据元素可以是多个字符
21 .若一棵二叉树具有 的结点的个数是
B 。

10个度为2的结点,5个度为1的结点,则度为0
A. 9 B . 11 C . 15
D.不能确定
22.具有10个叶子结点的二叉树中有 B 个度为2的结点
A. 8
B . 9
C . 10
D . 11
23 .某二叉树结点的中序序列为 ABCDEFG 后序序列为BDCAFGE 则其左子 树中结点数目为: C
A . 3
B. 2
C . 4
D. 5
二、填空题。

(共计20分,共10题,每空1分)
1 .数据逻辑结构包括线性结构、树形结构和图状结构三种类 型,树形结构和图状结构合称 非线性结构。

2.数据的逻辑结构分为 集合
、线性结构、树形结构和图
状结构 4种。

3.线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对
A. 8 B . 37 C . 36 19. 串的长度是指
B 。

A.串中所含不同字母的个数
D. 9
B .串中所含字符的个数
D .串中所含非空格字符的个数
多关系,图形结构中元素之间存在多对多关系。

4 •数据结构的基本存储方法是顺序、链式、索引和散列存储。

5. 子串” str在主串” datastructure中的位置是 5 。

6 •深度为5的二叉树至多有31 个结点。

7 .若某二叉树有20个叶子结点,有30个结点仅有一个孩子,则该二叉树
的总结点个数为69 。

8. 具有10个顶点的无向图,边的总数最多为45 。

9. 索引是为了加快检索速度而引进的一种数据结构。

一个索引隶属于某个
数据记录集,它由若干索引项组成,索引项的结构为关键字和关键字对应记
录的地址。

10. 在一棵m阶B树中,除根结点外,每个结点最多有m 棵子树,最少有
m/2 棵子树。

三、判断题(共10分,共10题,每题一分)。

1.在决定选取何种存储结构时,一般不考虑各结点的值如何。

(话
2 .抽象数据类型(ADT )包括定义和实现两方面,其中定义是独立于实现的,定义仅给出一个ADT的逻辑特性,不必考虑如何在计算机中实现。

(V)
3.抽象数据类型与计算机内部表示和实现无关。

(V )
4 .顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。

(x )
5. 线性表采用链式存储结构时,结点和结点内部的存储空间可以是不连续的。

(x )
6. 双向链表可随机访问任一结点。

(X )
7. 在单链表中,给定任一结点的地址p,则可用下述语句将新结点s插入
结点p的后面:p—> next;(x )
8. 队列是一种插入和删除操作分别在表的两端进行的线性表,是一种先进后出
的结构。

(x )
9. 长度为1的串等价于一个字符型常量。

(X )
10. 空串和空白串是相同的。

(X
四、编程题(共20分,共2题,每题10分)。

1•请用C语言定义一个链表的数据结构存储方式(10 分)。

相关文档
最新文档