当前位置:文档之家› 数据结构与算法复习题及参考答案课案

数据结构与算法复习题及参考答案课案

数据结构与算法复习题及参考答案课案
数据结构与算法复习题及参考答案课案

复习题集─参考答案

一判断题

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

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

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

(×)4. 链表的每个结点中都恰好包含一个指针。

(×)5.链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。(×)6. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

(×)7. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。

(×)8. 线性表在物理存储空间中也一定是连续的。

(×)9. 顺序存储方式只能用于存储线性结构。

(√)10.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。

(√)11.对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。

(√)12.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。

(√)13.两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。

(×)14.二叉树的度为2。

(√)15.若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。

(×)16.二叉树中每个结点的两棵子树的高度差等于1。

(√)17.用二叉链表法存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。

(√)18.具有12个结点的完全二叉树有5个度为2的结点。

(√)19.二叉树的前序遍历序列中,任意一个结点均处在其孩子结点的前面。

(×)20.在冒泡法排序中,关键值较小的元素总是向前移动,关键值较大的元素总是向后移动。

(×)21.计算机处理的对象可以分为数据和非数据两大类。[计算机处理的对象都是数据]

(×)22.数据的逻辑结构与各数据元素在计算机中如何存储有关。

(×)23.算法必须用程序语言来书写。

(×)24.判断某个算法是否容易阅读是算法分析的任务之一。

(×)25.顺序表是一种有序的线性表。[任何数据结构才用顺序存储都叫顺序表]

(√)26.分配给顺序表的内存单元地址必须是连续的。

(√)27.栈和队列具有相同的逻辑特性。[它们的逻辑结构都是线性表]

(√)28.树形结构中每个结点至多有一个前驱。

(×)29.在树形结构中,处于同一层上的各结点之间都存在兄弟关系。

(×)30.如果表示图的邻接矩阵是对称矩阵,则该图一定是无向图。

(×)31.如果表示图的邻接矩阵是对称矩阵,则该图一定是有向图。

(×)32.顺序查找方法只能在顺序存储结构上进行。

(×)33.折半查找可以在有序的双向链表上进行。

(√)34.满二叉树中不存在度为1的结点。

(×)35.完全二叉树中的每个结点或者没有孩子或者有两个孩子。

(√)36.对n个元素执行快速排序,在进行第一次分组时,排序码的比较次数总是n-1次。

(√)37.在有向图中,各顶点的入度之和等于各顶点的出度之和。

一、选择题

(A)1. 在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:

A) 访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)C) 删除第i个结点(1≤i≤n)

B) 在第i个结点后插入一个新结点(1≤i≤n)D) 将n个结点从小到大排序(C)2. 算法分析的目的是:

A) 找出数据结构的合理性B) 研究算法中的输入和输出的关系

C) 分析算法的效率以求改进D) 分析算法的易懂性和文档性

(A)3. 算法分析的两个主要方面是:

A) 空间复杂性和时间复杂性B) 正确性和简明性

C) 可读性和文档性D) 数据复杂性和程序复杂性

(C)4. 计算机算法指的是:

A) 计算方法B) 排序方法C) 解决问题的有限运算序列D) 调度方法

(B)5. 计算机算法必须具备输入、输出和等5个特性。

A) 可行性、可移植性和可扩充性B) 可行性、确定性和有穷性

C) 确定性、有穷性和稳定性D) 易读性、稳定性和安全性

(B)6. 一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是: (A)110 (B)108 (C)100 (D)120

(D)下列选项中与数据存储结构无关的术语是:

A.顺序表

B.链表

C.链队列

D.栈

(A)7. 链接存储的存储结构所占存储空间:

(A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针

(B)只有一部分,存放结点值

(C)只有一部分,存储表示结点间关系的指针

(D)分两部分,一部分存放结点值,另一部分存放结点所占单元数

(B)8. 带头结点的单链表head,链表为空的判定条件是

(A)head == NULL (B) head->next ==NULL ( C) head->next ==head (D) head!=NULL

(B)9. 一个栈的输入序列为1,2,3,…,n,若输出序列的第一个元素是n,输出第i(1≤i≤n)个元素是。

A) 不确定B) n-i+1 C) i D) n-i

(B)10. 最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。

A) (rear+1)% n==front B) rear===front C) rear+1==front D) (rear-l) % n==front (A)11. 循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是:

(A) (rear-front+m)%m (B) rear-front+1 (C) rear-front-1 (D) rear-front

(B)12. 若用一个大小为6的数值来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为:

(A) 1和5 (B) 2和4 (C) 4和2 ( D) 5和1

(C )13. 按照二叉树的定义,具有3个结点的二叉树有( )种。

A) 3 B) 4 C) 5 D) 6 [利用排列组合知识来做]

(B )14. 若一棵二叉树中度为l 的结点个数是3,度为2的结点个数是4,则该二叉树叶子结点的个数是:

(A) 4 (B) 5 (C) 7 (D) 8

(B )15. 具有n(n>0)个结点的完全二叉树的深度为:

(A) ?log 2(n)? (B) ? log 2(n)? (C) ? log 2(n) ?+1 (D) ?log 2(n)+1?

(D )16. 对一个满二叉树,m 个叶子,n 个结点,深度为h ,则:

(A) n = h+m (B) h+m = 2n (C) m = h-1 (D) n = 2h-1

(C )17.在高度为h 的完全二叉树中,表述正确的是( )

A.度为0的结点都在第h 层上

B.第i(1≤i

C.第i(1≤i

D.不存在度为1的结点

(B )18. 深度为5的二叉树至多有( )个结点。

A) 32 B) 31 C) 16 D) 10

(A )19. 用邻接表表示图进行深度优先遍历时,通常采用( )结构来时实现算法。

A) 栈 B) 队列 C) 树 D) 图

(D )20. 对N 个记录作顺序查找时,当查找成功时,平均查找长度是( )。

A) N 2 B) N 2/2 C) N D)(N ﹢1)/2

(B )21. 当一个有n 个顶点的图用邻接矩阵A 表示时,顶点V i 的度是( )。

(A)∑=n i j i A 1],[ B) ∑=n j j i A 1],[ C)∑=n i i j A 1],[ D)∑=n i j i A 1],[+∑=n j i j A 1

],[

(C )22.某算法的时间复杂度为O(2n ),表明该算法的( )

A.问题规模是2n

B.执行时间等于2n

C.执行时间近似与2n 成正比

D.问题的规模近似与2n 成正比

(D )23.“二叉树为空”意味着二叉树( )

A.由一些没有赋值的空结点构成

B.根结点没有子树

C.不存在

D.没有结点

(D )24.数据结构的研究内容不涉及( )

A.数据如何组织

B.数据如何存储

C.数据的运算如何实现

D.算法用什么语言描述

(C )25.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储

A.数据的处理方法

B.数据元素的类型

C.数据元素之间的关系

D.数据的存储方法

(D )26.数据采用顺序存储,要求( )

A.存储的是属于线性结构的数据

B.根据结点值的大小,有序存放各结点

C.按存储单元地址由低到高的顺序存放各结点

D.各结点存放方法有规律,能隐含表示结点间的逻辑关系

(D )27.一个顺序表所占存储空间大的大小与( )无关

A.顺序表长度

B.结点类型

C.结点中各字段的类型

D.结点存放顺序

(A )28.数据采用链接存储,要求( )

A.每个结点占用一片连续的存储区域

B.所有结点占用一片连续的存储区域

C.结点的最后一个字段是指针型的字段 C.每个结点有多少个后继,就设多少个指针字段

(A )29.算法的时间复杂度与( )有关

A.问题规模

B.计算机硬件性能

C.编译程序质量

D.程序设计语言

(C)30.在程序中,为了设置一个空的顺序表,必须()

A.给各数组元素赋空值

B.给各顺序表元素赋空值

C.给表示顺序表长度的变量赋初始值

D.给数组变量名赋初始值

(D)31.若变量H是某个带表头结点循环单向链表的表头指针,则在该链表最后的一个结点的后继指针域中存放的是()

A.H的地址

B.H的值

C.表头结点的值

D.首元结点的地址

(A)32.栈和队列的共同点在于()

A.逻辑特性

B.存储结构

C.运算方法

D.元素类型

(C)33.栈和队列的共同点在于()

A.都对存储方法作了限制

B.都是只能进行插入、删除运算

C.都对插入、删除的位置作了限制

D.都对插入、删除两中操作的先后顺序作了限制

(C)34.若5个元素的进栈序列是1,2,3,4,5,则不可能得到出栈序列()

A.1,2,3,4,5

B.3,4,2,5,1

C.4,2,1,3,5

D.5,4,3,2,1

(A)35.顺序循环队列中是否可以插入下一个元素,()

A.与队首指针和队尾指针的值有关

B.只与队尾指针的值有关,与队首指针的值无关

C.只与数组大小有关,与队首指针和队尾指针的值无关

D.与曾经进行过多少次插入操作有关

(A)36.在顺序队列中,元素的排列顺序()

A.由元素插入队列的先后顺序决定

B.与元素值的大小有关

C.与队首指针和队尾指针的取值有关

D.与数组大小有关

(C)37.在高度为h的完全二叉树中,()

A.度为0的结点都在第h层上

B.第i(1≤i

C.第i(1≤i

D.不存在度为1的结点

(B)38.一颗二叉树如图所示,其中序遍历的序列为:

B. DGBAECHF

C. GDBEHFCA

D. ABCDEFGH

(A)39.采用邻接表存储的图的深度优先遍历算法类似于二叉树的

A.先序遍历B.中序遍历C.后序遍历D.按层遍历

(D)40.采用邻接表存储的图的广度优先遍历算法类似于二叉树的

A.先序遍历B.中序遍历C.后序遍历D.按层遍历

(D)41.已知关键字序列为(51,22,83,46,75,18,68,30),对其进行快速排序,第一趟划分完成后的

关键字序列是

A.(18,22,30,46,51,68,75,83)

B.(30,18,22,46,51,75,83,68)

C.(46,30,22,18,51,75,68,83)

D.(30,22,18,46,51,75,68,83)

二、填空题

1.数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。

2.下面程序段的时间复杂度是O(log3n) 。

i =1;

while(i<=n)i = i * 3;

3.在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。

4.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表的元素是,应采用顺序存储结构。

5.在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间复杂度为O(n)。6.已知L是带表头结点的非空单链表,且P结点既不是首元结点,也不是尾结点,试从下列提供的答案中选择合适的语句序列。

删除P结点的直接后继结点的语句序列是(11)(4)(14) 。

删除P结点的语句序列是(10)(12)(7)(4)(14) 。

(1) P = P->next ; (2) P->next = P; (3) P->next = P->next->next

(4) P->next = P->next->next; (5) while(P!=NULL) P = P->next ;

(6) while(Q->next != NULL) {P = Q; Q=Q->next;}

(7) while(P->next != Q) P = P->next;

(8) while(P->next->next != Q) P = P->next;

(9) while(P->next->next != NULL) P = P->next;

(10) Q = P; (11) Q = P->next; (12) P = L ;

(13) L = L->next; (14) free(Q);

7.栈是一种特殊的线性表,允许插入和删除运算的一端称为栈顶。不允许插入和删除运算的一端称为栈底。

8.设栈S的初始状态为空,若元素a、b、c、d、e、f依次进栈,得到的出栈序列是b、d、c、f、e、a,则

栈S的容量至少是 3 。

9.用S表示入栈操作,X表示出栈操作,若元素入栈的顺序为1234,为了得到1342出栈顺序,相应的S和X的操作串为 SXSSXSXX 。

10.数据的逻辑结构可以分为线性和非线性两大类。

11.数据的运算用算法表示。

12.逻辑上相邻的结点在存储器中也相邻,这是顺序存储结构的特点。

13.在长度为n的顺序表上实现定位操作,其算法的时间复杂度为O(n) 。

14.为了实现随机访问,线性结构应该采用顺序存储。

15.在长度为n的顺序表中插入一个元素,最多要移动n 个元素。

16.栈的存储结构主要有顺序和链式两种。

17.在编写程序的时候,如果栈的最大长度难以预先估计,则最好使用链式栈。

18.在树形结构中,如果某结点没有前驱(双亲),则称该结点为根结点;如果某结点没有后继(孩子),

则称该结点为叶子。

19.在树形结构中,每个结点最多只有一个前驱(双亲)。

20.由3个结点所构成的二叉树有 5 种形态。

21.二叉树的前序遍历按如下三个步骤进行:①访问根结点;②前序遍历左子树;③前序遍历右子树。【注意:②③中一定要加“前序”两字!】

22.二叉树的中序遍历按如下三个步骤进行:①中序遍历左子树;②访问根结点;③中序遍历左子树。【注意:①③中一定要加“中序”两字!】

23.在n个顶点的无向图中,至少有0 条边,至多有n(n-1)/2 条边。

24.在n个顶点的有向图中,至少有0 条边,至多有n(n-1) 条边。

25.如果排序不改变关键字相同的记录之间的相对次序,则称该排序方法是稳定的。

26.如果排序改变了关键字相同的记录之间的相对次序,则称该排序方法是不稳定的。

27.当待排关键字序列基本有序时,快速排序、简单选择排序和直接插入排序三种排序方法中,运行效率最高的是直接插入排序。

28.在一个图中,所有顶点的度数之和是所有边数的 2 倍。

29.无向图中边的数目等于邻接矩阵中非零元素个数的0.5 倍。

30.折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素28,6,12,20 比较大小。

31.在有序表(2,4,6,8,10,12,14,16,18)上用折半查找法查找元素9,其中第二次被比较的元素是 4 。

32.在有序表(2,4,6,8,10,12,14,16,18)上用折半查找法查找元素9,其中第三次被比较的元素是 6 。

三、简答题

1.对链表设置头结点的作用是什么?(至少说出两条好处)

答:其好处有:(1)对带头结点的链表,在表的任何结点之前插入结点或删除表中任何结点,所要做的都是修改前一个结点的指针域,因为任何元素结点都有前驱结点(若链表没有头结点,则首元素结点没有前驱结点,在其前插入结点和删除该结点时操作复杂些)。

(2)对带头结点的链表,表头指针是指向头结点的非空指针,因此空表与非空表的处理是一样的。

2.写出下列程序段的输出结果(队列中的元素类型QElem Type为char)。

void main( ){

Queue Q; Init Queue (Q);

Char x=’e’; y=’c’;

EnQ ueue (Q,’h’); En Q ueue (Q,’r’); En Queue (Q, y);

DeQueue (Q,x); EnQueue (Q,x);

DeQueue (Q,x); EnQ ueue (Q,’a’);

while(!QueueEmpty(Q)){ DeQueue (Q,y); printf(y); };

Printf(x);

}

解:char

3. 简述以下算法的功能(栈和队列的元素类型均为int )。

void algo3(Queue &Q){

Stack S; int d;

InitStack(S);

while(!QueueEmpty(Q)){

DeQueue (Q,d); Push(S,d);

};

while(!StackEmpty(S)){

Pop(S,d); EnQueue (Q,d);

}

}

解:

利用栈S 作为缓存空间,将队列Q 中的元素进行逆置(即相对于原顺序进行倒排)。

4. 描述以下三个概念的区别:头指针、头结点、首元结点(第一个元素结点)。在单链表中设置头结点的作用是什么? 答:首元结点是指链表中存储线性表中第一个数据元素a 1的结点。为了操作方便,通常在链表的首元结点之前附设一个结点,称为头结点,该结点的数据域中不存储线性表的数据元素,其作用是为了对链表进行操作时,可以对空表、非空表的情况以及对首元结点进行统一处理。头指针是指向链表中第一个结点(或为头结点或为首元结点)的指针。若链表中附设头结点,则不管线性表是否为空表,头指针均不为空。否则表示空表的链表的头指针为空。这三个概念对单链表、双向链表和循环链表均适用。是否设置头结点,是不同的存储结构表示同一逻辑结构的问题。

头指针 首元结点

简而言之,

头指针是指向链表中第一个结点(或为头结点或为首元结点)的指针;

头结点是在链表的首元结点之前附设的一个结点;数据域内只放空表标志和表长等信息(内放头指针?那还得另配一个头指针!!!)

首元素结点是指链表中存储线性表中第一个数据元素a 1的结点。

5. 对以下单链表执行下列语句,简述代码的功能,并画出单链表结果示意图。

while(T->next != NULL) { T->data = 2 * T->data; T = T->next; }

解:

代码功能:除最后一个结点之外,每个结点的数值部分改变为原值的2倍。

单链表结果示意图如下:

6. 请画出下图的邻接矩阵和邻接表

【本题较简单,不提供答案】

7.假设二叉树采用顺序存储结构,如图所示。

(1)画出二叉树表示;

(2)写出先序遍历、中序遍历和后序遍历的结果;

(3)写出结点值c 的双亲结点,其左、右孩子;

8. 树和二叉树之间有什么样的区别与联系?

解:

联系:(1)二叉树是树的一种,是一种特殊的树;(2)对树适用的操作或规律都可应用到二叉树上。

区别:(1)二叉树是一种特殊的树,特殊在,第一是有序树,第二结点的度数不超过2;(2)普通二叉树有3个性质,完全二叉树有5个性质,普通树是没有这些性质的。

9. 一棵二叉树中的结点的度或为0或为2,则二叉树的枝数为2(n0-1),其中n0是度为0的结点的个数。

证明:

设总结点数为n,度数为2的结点数为n2,依题意,该二叉树没有度数为1的结点。

那么n= n0+ n2

假定分枝数为B,每个结点通过一个分枝跟其双亲相连,除根结点外;这意味着除根结点外,每个结点对应一个分枝,即B=n-1 ,根据二叉树的性质3,n2=n0+1 ,

于是B==n-1= n0+ n2-1= n0+ n0-1-1=2(n0-1)

10. 一个深度为L的满K叉树有以下性质:第L层上的结点都是叶子结点,其余各层上每个结点都有K棵非空子树,如果按层次顺序从1开始对全部结点进行编号,求:

(1)各层的结点的数目是多少?

(2)编号为n的结点的双亲结点(若存在)的编号是多少?

(3)编号为n的结点的第i 个孩子结点(若存在)的编号是多少?

(4)编号为n的结点有右兄弟的条件是什么?如果有,其右兄弟的编号是多少?

请给出计算和推导过程。

11. 如果用一个循环数组q[0..m-1]表示队列时,该队列只有一个队列头指针front,不设队列尾指针rear,而改置计数器count用以记录队列中结点的个数。

(1)编写实现队列的三个基本运算:判空、入队、出队

(2)队列中能容纳元素的最多个数是多少?

【此题超出教学范围,不作解答。】

12. 已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,画出此二叉树。并给出其后序

遍历的结果。

解:根据已知的前序和中序遍历结果,建立二叉树如图所示。

此二叉树的后序遍历结果为:CBEFDA

13.假设以二叉链表表示二叉树,其类型定义如下:

A

B D

typedef struct node {

char data;

struct node*lchild, *rchild; ∥左右孩子指针

} *BinTree ;

阅读下列程序。

void f13(BinTree T){

InitStack(S); ∥ 初始化一个堆栈S

while(T || !StackEmpty(S)){

while(T){

Push(S,T); T=T->lchild;

}

if(!StackEmpty(S)){

T=Pop(S);

printf(“%c ”,T->data);

T=T->rchild;

}

}

}

回答下列问题:

(1)已知以T 为根指针的二叉树如图所示,

请写出执行f13(T)的输出结果:

(2)简述算法f13的功能。

14.设如下图所示的二叉树B 的存储结构为二叉链表,root 为根指针,结点结构为:(lchild,data,rchild )。其

中lchild ,rchild 分别为指向左右孩子的指针,data 为字符型,root 为根

指针,试回答下列问题: (1)对下列二叉树B ,执行下列算法traversal(root),试指出其输出结果; (2)假定二叉树B 共有n 个结点,试分析算法traversal(root)的时间复杂度。 二叉树B

解:

(1)输出结果:ABCCEEBDFFGG

(2)时间复杂度:

15.已知有向图的邻接表如图所示,请回答下面问题:

(1)给出该图的邻接矩阵;

(2)从结点A出发,写出该图的深度优先遍历序列。

16.设要将序列{Q, H, C, Y, P, A, M, S, R, D, F, X}中的关键码按字母序的升序重新排列。简述快速排序的思

路,并以第一个元素为轴中心,给出用快速排序对序列一趟扫描的结果。

解:

快速排序的思路:(1)从序列中任意选取一个元素作为枢轴,以枢轴为标准将序列划分成三部分。第一部分的所有元素比枢轴小,第二部分是枢轴自己,第三部分的所有元素比枢轴大。这样处理以后,枢轴的位置已经排好。

(2)对上述划分的第一部分序列和第三部分序列循环执行第(1)步的操作,直到划分的序列中只有一个元素为止。

针对题目给定的序列,快速排序一趟扫描的结果是:F, H, C, D, P, A, M, Q, R, S, Y, X.

四、算法填空

1.假设线性表用不带头结点的单向链表表示,结点数据类型如下:

struct node{

int s;

node * next;

}

下面的算法用于求线性表的长度。请在方框中填入适当的内容,将算法补充完整。

int GetLinkLen(node *h){

int s;

s=0;

while(h)

{

s=s+1;

h=h->next ;

}

return(s);

}

2.设有n个顺序表元素存放在数组v[1]~v[n]中,数组v的最大下标为n0,元素类型为TElem. 下面的算法用于删除顺序表中第一个值为x的元素。请在方框中填入适当内容,将算法补充完整。

void DeleValue (TElem x){

int i, j;

i=1;

While( v[i]!=x && i<=n )

i=i+1;

if(i<=n){

for(j=n;j>i;j--)

v[j-1]=v[j];

n-- ;

}

}

五、算法设计题

1.从顺序表中删除值为x的元素。

答:假定顺序表为a,有效元素个数为n,下标从0开始。

int DeleteReapeatValue(datatype * a, int * pNum, datatype x){

int i, k, n;

n=*pNum;

k=0;

for(i=0;i

If(a[i]==x) k++;

Else a[i-k]=a[i];

}

*pNum=n-1;

return k;

}

2.将顺序存储结构线性表(v1, v2, …, v n)改变成(vk+1,vk+2,…, vn,v1,v2,…, vk)。

答:

void ChangeSequence(datatype * v){

datatype a[SIZE];

for(int i=1;i

for(i=1;i<=n;i++) v[(k+i)%n]=a[i];

}

3.将顺序存储的线性表(v1, v2, …, vn)改变成(v1, v3, v5,…)。

答:

void ChangeSequence(datatype * v){

for(int i=3;i<=n;i+=2) v[i-i/2]=v[i]

}

4.从顺序表中删除重复的元素,并使剩余元素间的相对次序保持不变。

答:

int DeleteAllReapeatValue(datatype * a, int * pNum){

int n=*pNum;

int i , j ;

for(i=0;i

for(j=i+1; j

if(a[i]!= INFINITY && a[i]==a[j]) a[j]= INFINITY;

return DeleteReapeatValue(a,pNum, INFINITY);

}

5.从键盘输入一系列整数,建立一个长度为n的、不含重复元素的顺序表。答:

int CreateSequence(){

int a[SIZE];

int i=0, j, k;

while(i

scanf(“%d”, &k);

for(j=0; j<=i ; j++) if(a[j]==k) break;

if(j>i) a[++i]=k;

}

}

6.从键盘输入n个整数,建立带表头结点的单向链表。

答:

LinkList CreateList(){

int i=0 , j , k;

LinkList head=(Node*)malloc(sizeof(Node));

Node* r=head,*p=NULL;

While(i

scanf(“%d”, &k);

p=head->next;

while(p){

if(p->data==k) break;

p=p->next;

}

if(p==NULL){

s=(Node*)malloc(sizeof(Node));

s->data=k;

r->next=s;

r=s

i++;

}

}

return head;

}

7.设H是带表头结点的单向链表的表头指针,将链表中数值重复的结点删除。

答:

LinkList DleReapeatValue(LinkList H){

Node *p=H->next,*q,*s;

While(p){

s= p;

q=s->next;

while(q){

if(p->data==q->data){

s->next=q->next;

free(q);

q=s->next;

}

s=s->next;

q=q->next;

}

p=p->next;

}

}

8. 设有一带头结点的单链表,编程将链表颠倒过来。要求不用另外的数组或结点完成。

解:设链表结点的数据类型为:

typedef struct Node{

ElemType data; //自定义类型

struct Node *next;

}Node;

假定链表的头指针为H,如下的函数实现链表的倒置:

void RevLinkList(Node* H){

Node *p=H->next;

Node * q=NULL;

H->next=NULL;

while(p)

{

q=p->next; //保存下一个节点的指针

p->next=H->next;

H->next=p; //把取出的节点插入到头节点的后面

p=q;

}

}

9. 统计出单链表HL中结点的值等于给定值X的结点数。

解:设链表结点的数据类型为:

typedef struct Node{

ElemType data; //自定义类型

struct Node *next;

}Node;

假定链表的头指针为HL,如下的函数统计链表中接点值为X的结点数目:

Int CountNodeX(Node * HL, ElemType x){

Int n;

Node* p=HL->next;

While(p){

If(p->data==x) n++;

P=p->next;

}

Return p;

}

11.已知非空线性链表的第一个结点的指针为head,请写一个算法,将该链表中数据域值最小的结点移动到链表的最前端。

编写的函数具有如下原型:void func(TLinkNode *head),其中链结点的结构如下:struct TLinkNode { int data; TLinkNode *next; } 请完成该算法。

12. 编写递归算法,计算二叉树中叶子结点的数目。

解:假定二叉树用二叉链表存储,并假定二叉树的结点类型定义如下

struct node

{ char data;

struct node *lchild, rchild;

}node, BiTree*;

再假定n是一个全局整型变量,用来存放二叉树中叶子结点的数目。

如下的函数统计出二叉树t(为指向给定二叉树根的指针)中叶子结点的数目:

Int CountLeafNum(BiTree t){

If(t){

CountLeafNum(t->lchild);

CountLeafNum(t->lchild);

If(!t->lchild && !t->rchild) n++;

}

}

数据结构与算法习题及答案

第1章绪论 习题 1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。 3.简述逻辑结构的四种基本关系并画出它们的关系图。 4.存储结构由哪两种基本的存储方法实现 5.选择题 (1)在数据结构中,从逻辑上可以把数据结构分成()。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 (2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的()。 A.存储结构B.存储实现 C.逻辑结构D.运算实现 (3)通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着()。 A.数据具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等 (4)以下说法正确的是()。 A.数据元素是数据的最小单位 B.数据项是数据的基本单位 C.数据结构是带有结构的各数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 (5)以下与数据的存储结构无关的术语是()。 A.顺序队列B.链表C.有序表D.链栈 (6)以下数据结构中,()是非线性数据结构 A.树B.字符串C.队D.栈 6.试分析下面各程序段的时间复杂度。 (1)x=90;y=100; while(y>0) if(x>100) {x=x-10;y--;} elsex++; (2)for(i=0;i

房建注册监理工程师继续教育必修课考试试题及答案5(80道题)

单选题 1、题目:以下哪项,项目的建设可以不进行招标()。 选项: A. 停建或者缓建后恢复建设的单位工程,且承包人未发生变更的,B. 大型基础设施、公共事业等关系社会公共利益、公共安全的项目,C. 全部或者部分使用国有资金投资或者国家融资的项目,D. 采购人依法能够自行建设、生产或者提供, 请选择: A B C D 2、题目:以下关于监理合同变更的说法错误的是()。 选项: A.在监理合同履行期间,由于客观条件的变化,监理单位提出变更合同要求后即可以变更合同,B.监理合同生效后,如果实际情况发生变化使得监理单位不能完成部分工作时,监理单位应立即通知建设单位,C.在监理合同履行期间,因法律法规、标准颁布或修订导致监理与相关服务的范围、时间发生变化时,应按合同变更对待,D.因非监理单位原因造成工程投资额或建筑安装工程费增加时,监理与相关服务酬金的计算基数便发生变化, 请选择: A B C D 3、题目:通过施工全过程的全面质量监督管理、协调和决策,保证竣工项目达到投资决策所确定的质量标准,是()的质量控制目标。 选项: A. 建设单位,B. 设计单位,C. 施工单位,D. 监理单位,,,,,,,,,,,,,,,,,, 请选择: A B C D 4、题目:根据《建设工程安全生产管理条例》,下列选项中()不是建设单位安全生产管理的主要责任和义务。 选项: A. 向施工单位提供有关资料,B. 及时报告安全生产事故隐患,C. 保证安全生产投入,D. 将拆除工程发包给具有相应资质的施工单位,,,,,,,,,,,,,,,, 请选择: A B C D 5、题目:工程项目竣工验收申请报告的提交方是()。 选项: A.项目业主 ,B.咨询工程师,C.工程承包商,D.项目使用人, 请选择: A B C D

数据结构与算法C语言版期末复习题

《数据结构与算法》期末复习题 一、选择题。 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.算法分析的目的是 C ,算法分析的两个主要方面是 A 。 (1)A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进C.分析算法的易读性和文档性 (2)A.空间复杂度和时间复杂度B.正确性和简明性 C.可读性和文档性D.数据复杂性和程序复杂性 8.下面程序段的时间复杂度是O(n2) 。 s =0; for( I =0; i

数据结构与算法复习题10(C语言版)

习 9解答 判断题: 1.用向量和单链表表示的有序表均可使用折半查找方法来提高查找速度。 答:FALSE (错。链表表示的有序表不能用折半查找法。) 2.有n 个数据放在一维数组A[1..n]中,在进行顺序查找时,这n 个数的排列有序或无序其平均查找长度不同。 答:FALSE (错。因顺序查找既适合于有序表也适合于无序表;对这两种表,若对于每个元素的查找概率相等,则顺序查找的ASL 相同,并且都是(n+1)/2;对于查找概率不同的情况,则按查找概率由大到小排序的无序表其ASL 要比有序表的ASL 小。) 3.折半查找是先确定待查有序表记录的范围,然后逐步缩小范围,直到找到或找不到该记录为止。( ) 答:TRUE 4.哈希表的查找效率主要取决于哈希表哈希表造表时选取的哈希函数和处理冲突的方法。 答:TRUE 5.查找表是由同一类型的数据元素(或记录)构成的集合。 答:TRUE 单选题: 6.对于18个元素的有序表采用二分(折半)查找,则查找A[3]的比较序列的下标为( )。 A. 1、2、3 B. 9、5、2、3 C. 9、5、3 D.9、4、2、3 答:D (第一次??2/)181(+ = 9,第二次??2/)81(+ = 4,第三次??2/)31(+ = 2, (第四次??2/)33(+ = 3,故选D. 7. 顺序查找法适合于存储结构为____________的线性表。 A.散列存储 B.顺序存储或链式存储 C.压缩存储 D.索引存储 答:B 8.对线性表进行二分查找时,要求线性表必须( )。 A .以顺序方式存储 B. 以链接方式存储 C .以顺序方式存储,且结点按关键字有序排序 D. 以链接方式存储,且结点按关键字有序排序 答:C 9.设哈希表长m=14,哈希函数为H(k) = k MOD 11。表中已有4个记录(如下图

公共课程考试必修课答案

(A接触传播)是埃博拉出血热最主要的传播途径。 (A邪犯肺卫)型中东呼吸综合征的主症为发热,咽痛,头身疼痛,咳嗽少痰,乏力倦怠,纳食呆滞等 (C.正虚邪陷)型中东呼吸综合征的治法为回元固脱,解毒开窍 (D.阳气暴脱证)黄热病的表现为身热骤降,面色苍白,气短息微,大汗不止,四肢湿冷,烦躁不安或神昏谵语,肌肤斑疹或见各种出血。舌质淡红,脉微欲绝(D.以上均是)等医疗器具和物品要实行专人专用 (D.正虚邪恋)的推荐方剂为沙参麦门冬汤合竹叶石膏汤 (D感染埃博拉病毒的人和灵长类动物)为埃博拉出血热的传染源。 (邪犯肺卫)型中东呼吸综合征的主症为发热,咽痛,头身疼痛,咳嗽少痰,乏力倦怠,纳食呆滞等 2007年,首次在西太平洋国家密克罗尼西亚的(D.稚普岛)发生寨卡病毒疫情暴发 AAAAAAAAAAA 埃博拉病毒100℃( B 5分钟)即可灭活病毒 埃博拉病毒60℃灭活病毒需要(小时) 埃博拉病毒60℃需(A 1 )小时灭活 埃博拉病毒的感染对象不包括(A家禽) 埃博拉病毒的自然宿主为(C.狐蝠科的果蝠) 埃博拉病毒对(A、红外线)不敏感 埃博拉病毒对热有(C中度)抵抗力 埃博拉病毒对人不致病的类型为(E.菜斯顿型) 埃博拉病毒对紫外线、γ射线、甲醛、(B次氣酸)酚类等消毒剂和脂溶剂敏感埃博拉病毒墓因组编码为(C 7个结构蛋白和1个非结构蛋白) 埃博拉病毒属(D丝状)病毒科 埃博拉病毒在室温及4℃存放(A 1个月)后,感染性无明显变化 埃博拉病毒中(C莱斯顿型)对人不致病 埃博拉出血热病程5-7曰可出现麻疹样皮疹,以(D,肩部、手心和脚掌)多见埃博拉出血热的典型病理特点是(C.肝细胞点、灶样坏死) 埃博拉出血热的潜伏期为(C、2-21天) 埃博拉出血热的潜伏期一般为(C 5-12天) 埃博拉出血热的治疗措施中有误的是(C.禁止血液净化治疗) 埃博拉出血热防控应严格执行(C首诊医师负责制) 埃博拉出血热非重病患者发病后(D2周)逐渐恢复 埃博拉出血热患者病房地面(A每天)使用500mg/L-1000mg/L含氯消毒液湿式埃博拉出血热患者病房物体表面如床头柜、水龙头、门把手以及各种台面等,用(C 500mg/L-1000mg/L)的含氯消毒剂或其它符合要求的表面消毒剂擦拭消毒埃博拉出血热患者诊疗过程中,医务人员应当戴(D医用防护口罩) 埃博拉出血热留观病例、疑似病例和确诊病例应当在(A、2小时)之内通过传埃博拉出血热密切接触者医学观察期限为自最后一次与病例或污染物品等接触之日起至第(D、21天)结束。

计算机学院数据结构与算法分析期末试题(2007级B)_无答案

四川大学期末考试试题 (2008-2009学年第1学期) 课程号:课程名称:数据结构与算法分析(B卷)任课教师: 1.数据类型为()。 A)数据项的集合B)值的集合及定义在其上的一组操作的总称 C)数据元素的集合D)关键字的集合 2.链表不具有的特点是()。 A)可随机直接访问任一元素B)插入删除不需要移动元素 C)不必事先估计元素个数D)所需空间与线性表长度成正比 3.设一个栈的入栈序列是ABCD,则借助于一个栈所得到的出栈序列不可能是()。 A)ABCD B)DCBA C)ABCD D)DABC 4.将对称矩阵A nxn压缩存储在一维数组B[m]中,则m的值至少为()。 A)n(n+1)/2 B)n(n-1)/2 C)n(n+1) D)n2 5.设二叉树中有n2个度为2的结点,n1个度为1的结点,n0个叶子结点,则此二叉树中空指针域个数为()。 A)n0+n1+n2 B)n2+n1+2n0 C)2n2+n1D)2n0+n1 6.对于具有n个顶点的强连图,其弧条数的最小值为()。 A)n+1 B)n C)n-1 D)n-2 7.一棵深度为k的平衡二叉树,其每个非终端结点的平衡因子均为0,则该树共有()个结点。 A)2k-1-1 B)2k-1C)2k-1+1 D)2k-1 8.归并排序的时间复杂度是()。 A)O(1) B)O(n) C)O(n2) D)O(nlogn) 9.每一趟都能选出一个元素放在其最终位置上,并且不稳定的排序算法是()。 A)冒泡排序B)简单选择排序C)希尔排序D)直接插入排序10.按照二叉树的定义,具有3个结点的不同形态(相似)的二叉树有()种。 A)3 B)4 C)5 D)6 二、(本题10分) 利用两个栈S1、S2模拟一个队列(如客户队列)时,如何用栈的运算实现队列的插入、删除运算,请简述算法思想。 三、(本题10分) 已知一棵二叉树的先序序列与中序序列分别如下,试画出此二叉树。 先序序列:ABCDEFGH IJ 中序序列:CBEDAGHFJI 注:试题字迹务必清晰,书写工整。本题2页,本页为第1页 教务处试题编号:

数据结构与算法复习题库含答案

数据结构复习题 第一章概论 一、选择题 1、研究数据结构就是研究( D )。 A. 数据的逻辑结构 B. 数据的存储结构 C. 数据的逻辑结构和存储结构 D. 数据的逻辑结构、存储结构及其基本操作 2、算法分析的两个主要方面是( A )。 A. 空间复杂度和时间复杂度 B. 正确性和简单性C. 可读性和文档性 D. 数据复杂性和程序复杂性 3、具有线性结构的数据结构是( D )。 A. 图 B. 树 C. 广义表 D. 栈 4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。 A. 可执行性、可移植性和可扩充性 B. 可执行性、有穷性和确定性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和确定性 5、下面程序段的时间复杂度是( C )。 fori0;im;i++ forj0;jn;j++ a[i][j]i*j; A. Om2 B. On2 C. Om*n D. Om+n 6、算法是( D )。

A. 计算机程序 B. 解决问题的计算方法 C. 排序算法 D. 解决问题的有限运算序列 7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。 A. On B. Onlog2n C. On2 D. Olog2n 8、下面程序段的时间复杂度为( C )。 i1; whilein ii*3; A. On B. O3n C. Olog3n D. On3 9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的( B )和运算等的学科。 A. 结构 B. 关系 C. 运算 D. 算法 10、下面程序段的时间复杂度是( A )。 is0; whilesn i++;s+i; A. On B. On2 C. Olog2n D. On3 11、抽象数据类型的三个组成部分分别为( A )。 A. 数据对象、数据关系和基本操作 B. 数据元素、逻辑结构和存储结构 C. 数据项、数据元素和数据类型 D. 数据元素、数据结构和数据类型 12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是(D)。

2017年安徽省二级建造师继续教育公共必修课试题及个人答案

课程一工程项目风险管理(100分) 一、单选 1、现代工程项目的风险(B) A:跟以前一样没变 B:越来越大 C:越来越小 D:范围变小 2、下列不是回避风险的是(D) A:选择风险小或者适中的项目 B:回避风险大的项目 C:及时中断风险项目 D:选择风险大、利润大的项目 3、下列那个不属于按管理的过程分析的风险。(A) A:生产能力风险 B:环境调查和预测的风险 C:运营管理风险 D:高层战略风险 二、多选 1、对于将来情况的正常预测以及正常的、理想的工程技术、管理和组织实施是工程项目(ABCDE)的基础。 A:规划 B:计划 C:可行性研究 D:设计 E:构思 2、风险评价的内容是(ABCDE) A:风险的影响和损失分析 B:风险的发生可能性分析 C:风险级别 D:风险存在和发生时间分析 E:分析的起因和可控性分析 3、项目环境要素风险主要有(ABCDE) A:自然条件 B:政治风险 C:经济风险 D:社会风险 E:法律风险 三、判断 1、风险管理在项目组织中逐渐职能化趋势(A) A:正确

2、风险的管理为现代项目管理研究和应用的特点之一(A) A:正确 B:错误 3、决策树常常用于不同风险方案的选择(A) A:正确 B:错误 4、风险管理的目的在于消灭风险(B) A:正确 B:错误 课程二工程项目索赔管理案例分析(80分) 一、单选 1. 课程中通过案例一对承包人索赔的建议除了要牢固树立和强化索赔意识和索赔及时为自己,也是为业主外还有(A ) A:及时进行索赔 B:索赔及时为自己 C:在最后期限进行索赔 D:索赔及时为业主 2. 我国现行的《建设工程施工合同》标准文本对结算的约定是两个(D )天,即承包人报送结算的时间和发包人进行审价的时间都是这个时间。 A:10 B:15 C:7 D:28 3、因发包人的责任造成工期延误和(或)承包人不能及时得到合同价款及承包人的其他经济损失时,当该索赔事件持续进行时,承包人应当阶段性向工程师发出索赔意向,在索赔事件终了后(C )天内,向工程师送交索赔的有关资料和最终索赔报告。 A:7 B:10 C:28 D:15 二、多选 1. 课程中案例一发生停窝工损失的三个阶段是(ACD ) A:开发公司延期提供完整施工图纸导致停窝工 B:开发公司延期提供水电导致停窝工 C:开发公司不能提供变更楼层高度的合法图纸导致停工 D:开发公司拖延提供施工场地导致开工延期 E:开发公司不能及时提供变工程款导致停窝工 2. 课程中案例一的开工时间和竣工时间分别为(DE)[这个题目选项,估计是系统错误] A:39696

北京交通大学数据结构与算法期末测验考试参考答案

北京交通大学考试试题(A卷) 课程名称:数据结构与算法2011-2012学年第一学期出题教师:张勇 (请考生注意:(1)本试卷共有六道大题,(2)答案一律写在答题纸上,(3)试卷不得带出考场) 1. 在顺序表中访问任意一个元素的时间复杂度均为,因此顺序表也称为 的数据结构。 2.三维数组a[4][3][2](下标从0开始),假设a[0][0][0]的地址为50,数据以行序优先方式存储,每个元素的长度为2字节,则a[2][1][1]的地址是。 3. 直接插入排序用监视哨的作用是。 4. 已知广义表Ls=(a, (b, c), (d, e)), 运用head和tail函数取出Ls中的原子d的运算 是。 5.对有14个元素的有序表A[1..14]进行折半查找,当比较到A[4]时算法结束。被比较元素除A[4]外,还有。 6. 在AOV网中,顶点表示,边表示。 7. 有向图G可进行拓扑排序的判别条件是。 8. 若串S1=‘ABCDEFGHIJK’,S2=‘451223’,S3=‘####’,则执行 Substring(S1,Strlength(S3),Index(S2,‘12’,1))的结果是。 二、选择题(每空2分,共20分) 1.在下列存储形式中,哪一个不是树的存储形式?() A.双亲表示法B.孩子链表表示法 C.孩子兄弟表示法D.顺序存储表示法 2.查找n个元素的有序表时,最有效的查找方法是()。 A.顺序查找B.分块查找 C.折半查找D.二叉查找 3.将所示的s所指结点加到p所指结点之后,其语句应为()。 p (A) s->next=p+1 ; p->next=s;

(B) (*p).next=s; (*s).next=(*p).next; (C) s->next=p->next ; p->next=s->next; (D) s->next=p->next ; p->next=s; 4. 在有向图的邻接表存储结构中,顶点v 在链表中出现的次数是( )。 A. 顶点v 的度 B. 顶点v 的出度 C. 顶点v 的入度 D. 依附于顶点v 的边数 5. 算法的时间复杂度为O (nlog 2n )、空间复杂度为O(1)的排序算法是( )。 A. 堆排序 B. 快速排序 C. 归并排序 D.直接选择 6. 设矩阵A 是一个对称矩阵,为了节省存储,将其 下三角部分(如右图所示)按行序存放在一维数组B[ 1, n(n-1)/2 ]中,对下三角部分中任一元素ai,j(i ≤j), 在一维数组B 中下标k 的值是( ): A.i(i-1)/2+j-1 B.i(i-1)/2+j C.i(i+1)/2+j-1 D.i(i+1)/2+j 7. 由一个长度为11的有序表,按二分查找法对该表进行查找,在表内各元素等概率情 况下,查找成功的平均查找长度是( )。 A .29/11 B. 31/11 C. 33/11 D.35/11 8. AVL 树是一种平衡的二叉排序树,树中任一结点的( )。 A. 左、右子树的高度均相同 B. 左、右子树高度差的绝对值不超过1 C. 左子树的高度均大于右子树的高度 D. 左子树的高度均小于右子树的高度 9. 下列四种排序方法中,不稳定的方法是( )。 A. 直接插入排序 B. 冒泡排序 C. 归并排序 D. 堆排序 10. 设树的度为4,其中度为1,2,3,4的结点个数分别为4, 2, ,1, 1, 则T 中的叶子数为 ( )。 A .5 B .6 C .7 D .8 三、 判断题(10分,每小题1分) 1. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。( ) 2. 数组不适合作任何二叉树的存储结构。( ) 3. 广义表的取表尾运算,其结果通常是个表,但有时也可是个原子。( ) 4. 在含有n 个结点的树中,边数只能是n-1条。( ) 5. 所谓一个排序算法是否稳定,是指该算法在各种情况下的效率是否相差不大。( ) 6. 简单选择排序在最好情况下的时间复杂度为O(n)。( ) 7. 在二叉排序树中插入一个新结点,总是插入到叶结点下面。( ) 8. 采用线性探测处理冲突,当从哈希表中删除一个记录时,不应将该记录所在位置置 空,因为这会影响以后的查找。( ) 9. 有n 个数存放在一维数组A[1..n]中,在进行顺序查找时,这n 个数的排列有序或无 ?????? ? ???? ? ??=n n n n a a a a a a A ,2,1,2 ,21,21 ,1Λ Λ

数据结构与算法分析习题与参考答案

大学 《数据结构与算法分析》课程 习题及参考答案 模拟试卷一 一、单选题(每题 2 分,共20分) 1.以下数据结构中哪一个是线性结构?( ) A. 有向图 B. 队列 C. 线索二叉树 D. B树 2.在一个单链表HL中,若要在当前由指针p指向的结点后面插入一个由q指向的结点, 则执行如下( )语句序列。 A. p=q; p->next=q; B. p->next=q; q->next=p; C. p->next=q->next; p=q; D. q->next=p->next; p->next=q; 3.以下哪一个不是队列的基本运算?() A. 在队列第i个元素之后插入一个元素 B. 从队头删除一个元素 C. 判断一个队列是否为空 D.读取队头元素的值 4.字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成( ) 个不同的字符串? A.14 B.5 C.6 D.8 5.由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为( )。 以下6-8题基于图1。 6.该二叉树结点的前序遍历的序列为( )。 A.E、G、F、A、C、D、B B.E、A、G、C、F、B、D C.E、A、C、B、D、G、F D.E、G、A、C、D、F、B 7.该二叉树结点的中序遍历的序列为( )。 A. A、B、C、D、E、G、F B. E、A、G、C、F、B、D C. E、A、C、B、D、G、F E.B、D、C、A、F、G、E 8.该二叉树的按层遍历的序列为( )。

A.E、G、F、A、C、D、B B. E、A、C、B、D、G、F C. E、A、G、C、F、B、D D. E、G、A、C、D、F、B 9.下面关于图的存储的叙述中正确的是( )。 A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关 B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关 C. 用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关 D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关 10.设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建 堆的结果?( ) A. a,g,h,m,n,p,q,x,z B. a,g,m,h,q,n,p,x,z C. g,m,q,a,n,p,x,h,z D. h,g,m,p,a,n,q,x,z 二、填空题(每空1分,共26分) 1.数据的物理结构被分为_________、________、__________和___________四种。 2.对于一个长度为n的顺序存储的线性表,在表头插入元素的时间复杂度为_________, 在表尾插入元素的时间复杂度为____________。 3.向一个由HS指向的链栈中插入一个结点时p时,需要执行的操作是________________; 删除一个结点时,需要执行的操作是______________________________(假设栈不空而 且无需回收被删除结点)。 4.对于一棵具有n个结点的二叉树,一个结点的编号为i(1≤i≤n),若它有左孩子则左 孩子结点的编号为________,若它有右孩子,则右孩子结点的编号为________,若它有 双亲,则双亲结点的编号为________。 5.当向一个大根堆插入一个具有最大值的元素时,需要逐层_________调整,直到被调整 到____________位置为止。 6.以二分查找方法从长度为10的有序表中查找一个元素时,平均查找长度为________。 7.表示图的三种常用的存储结构为_____________、____________和_______________。 8.对于线性表(70,34,55,23,65,41,20)进行散列存储时,若选用H(K)=K %7 作为散列函数,则散列地址为0的元素有________个,散列地址为6的有_______个。 9.在归并排序中,进行每趟归并的时间复杂度为______,整个排序过程的时间复杂度为 ____________,空间复杂度为___________。 10.在一棵m阶B_树上,每个非树根结点的关键字数目最少为________个,最多为________ 个,其子树数目最少为________,最多为________。 三、运算题(每题 6 分,共24分) 1.写出下列中缀表达式的后缀形式: (1)3X/(Y-2)+1 (2)2+X*(Y+3) 2.试对图2中的二叉树画出其: (1)顺序存储表示的示意图; (2)二叉链表存储表示的示意图。 3.判断以下序列是否是小根堆? 如果不是, 将它调 图2 整为小根堆。 (1){ 12, 70, 33, 65, 24, 56, 48, 92, 86, 33 } (2){ 05, 23, 20, 28, 40, 38, 29, 61, 35, 76, 47, 100 } 4.已知一个图的顶点集V和边集E分别为: V={1,2,3,4,5,6,7};

必修课试题答案

必修课试题答案

当前人力资源和社会保障形势任务 一、单选题 1、我国就业中最突出的矛盾是(B ) A.农村劳动力的转移 B.供大于求 C.就业政策不健全 D.劳动者素质的提升 2、我国在社会保障制度缺失方面,最重要缺失的是(C )方面的制度。 A.住房分配 B.失业保险 C.养老保险 D.大病医疗 3、(A)是劳动关系中最容易产生纠纷的主要原因。 A.工资 B.社会保障 C.员工休假 D.福利待遇 4、中央提出在(A )年基本建立覆盖城乡的社会保障体系。 A.2020

B.2015 C.2018 D.2025 5、我国居民收入在整个国民收入分配中所占的比重是(D ) A.较高 B.中等水平 C.最高 D.较低 二、多选题 1、人力资源社会保障部的主要业务包括(ABCD )等等方面。 A.社会保障 B.工资收入分配 C.人事制度改革 D.就业 2、中国目前在就业方面存在着结构性的矛盾,主要体现在(ABCD) A.农村劳动力的转移 B.劳动者素质是否符合需要 C.第三产业发展不充分 D.第三四产业比例失调

3、地区附加津贴包括以下(ABC )方面。A.岗位津贴 B.艰苦边远地方津贴 C.地区附加津贴 D.岗位工资 三、判断题 1、2007年公务员制度的改革口号是改革制度,服务民生。 ()正确(X)错误 2、村官计划是中央制定的大学生服务基层计 划之一。 (√)正确()错误 我国的就业形势和政策 一、单选题 1、我国新时期的就业方针是(A ) A.劳动者自主创业、市场调节就业、政府促进就业 B.劳动者自主择业、市场调节就业、政府促进

就业 C.劳动者自主择业、市场促进就业、政府调节就业 D.劳动者自主择业、市场促进就业、政府调节就业 2、(A)是基本的人权,是民生之本。 A.就业 B.安全 C.自由 D.平等 3、党的(C )上提出把实现社会就业比较充分作为构建和谐社会的九大目标任务之一。A.十七届五中全会 B.十六届七中全会 C.十六届六中全会 D.十七届三中全会 4、我国农民工的流动就业问题,体现了(A )中的就业矛盾问题。 A.三元结构,城市+农村+流动 B.四元结构,城市+农村+流动+就业 C.二元结构,城市+农村 D.一元结构,城乡统筹

数据结构与算法试题

数据结构与算法试题 一、单选题 1、在数据结构的讨论中把数据结构从逻辑上分为 (C ) A 内部结构与外部结构 B 静态结构与动态结构 C 线性结构与非线性结构 D 紧凑结构与非紧凑结构。 2、采用线性链表表示一个向量时,要求占用的存储空间地址(D ) A 必须就是连续的 B 部分地址必须就是连续的 C 一定就是不连续的 D 可连续可不连续 3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为( D )。 A n B n/2 C (n-1)/2 D (n+1)/2 4、在一个单链表中,若q结点就是p结点的前驱结点,若在q与p之间插入结点s,则执行( D )。 A s→link = p→link;p→link = s; B p→link = s; s→link = q; C p→link = s→link;s→link = p; D q→link = s;s→link = p; 5、如果想在4092个数据中只需要选择其中最小的5个,采用( C )方法最好。 A 起泡排序 B 堆排序 C 锦标赛排序 D 快速排序 6、设有两个串t与p,求p在t中首次出现的位置的运算叫做( B )。 A 求子串 B 模式匹配 C 串替换 D 串连接 7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。所有数组元素相继存放于一个连续的存储空间中,则存放该数

组至少需要的存储字数就是( C )。 A 80 B 100 C 240 D 270 8、将一个递归算法改为对应的非递归算法时,通常需要使用( A )。 A 栈 B 队列 C 循环队列 D 优先队列 9、一个队列的进队列顺序就是1, 2, 3, 4,则出队列顺序为( C )。 10、在循环队列中用数组A[0、、m-1] 存放队列元素,其队头与队尾指针分别为front与rear,则当前队列中的元素个数就是( D )。 A ( front - rear + 1) % m B ( rear - front + 1) % m C ( front - rear + m) % m D ( rear - front + m) % m 11、一个数组元素a[i]与( A )的表示等价。 A *(a+i) B a+i C *a+i D &a+i 12、若需要利用形参直接访问实参,则应把形参变量说明为( B )参数。 A 指针 B 引用 C 值 D 变量 13、下面程序段的时间复杂度为( C ) for (int i=0;i

公共必修课试题答案教学文稿

1、中东呼吸综合征的临床诊断病例为() A、符合流行病学史和临床表现,但尚无实验室确认依据 B、满足疑似病例标准,仅有实验室阳性筛查结果 C、单个靶标PCR阳性产物,经基因测序确认 D、从呼吸道标本中分离出MERS-CoV E、恢复期血清中MERS-CoV抗体较急性期血清抗体水平阳转 2、体外试验表明,()和干扰素-α联合治疗,对中东呼吸综合征具有一定抗病毒作用 A、奥司他韦 B、帕拉米韦 C、利巴韦林 D、金刚烷胺 E、金刚乙胺 3、寨卡病毒为() A、单股正链的RNA病毒 B、单股负链RNA病毒 C、双股正链的RNA病毒 D、双股负链的RNA病毒 E、单股正链的DNA病毒 4、埃博拉病毒60℃灭活病毒需要() A、5分钟 B、15分钟 C、30分钟

E、2小时 5、埃博拉出血热最主要的传播途径为() A、空气传播 B、性传播 C、接触传播 D、水传播 E、垂直传播 6、中东呼吸综合征病理主要表现不包括() A、肺充血 B、小叶性肺炎 C、双肺散在分布结节 D、间质性肺炎 E、肺炎性渗出 7、医务人员暴露于埃博拉出血热患者的血液、体液、分泌物或排泄物时,粘膜应用大量生理盐水冲洗或()冲洗 A、0.05%碘伏 B、0.1%碘伏 C、0.5%碘伏 D、1%双氧水

8、以下关于埃博拉出血热正确的是() A、发病主要集中在儿童 B、埃博拉病毒无广泛的细胞嗜性 C、潜伏期为2-11天 D、非重病患者发病后2周逐渐恢复 E、病人初期最显著的表现为高血压、休克和面部水肿 9、人感染H7N9禽流感重症患者胸部影像常呈双肺多发()及肺实变影像 A、空洞状影 B、磨玻璃影 C、新月样影 D、粟粒样结节影 E、蜂窝状影 10、以下不属于人感染H7N9禽流感重症病例次要标准的是() A、呼吸频率≥30次/分 B、氧合指数≥250mmHg C、多肺叶浸润 D、血尿素氮≥7.14mmol/L E、收缩压<90mmHg需要积极的液体复苏 11、人感染H7N9禽流感重症患者体温大多持续在()以上 A、38℃

数据结构与算法试卷(B卷)

广西科技大学2015 —2016 学年第 1 学期课程考核试题试卷 考核课程数据结构与算法( B 卷)考核班级物联网141 学生数36 印数40 考核方式闭卷考核时间120 分钟 一、单项选择题(在每小题的四个备选答案中,选出一个正确答案。每小题1分,共33分) 1、算法是()。 A. 计算机程序 B. 解决问题的计算方法 C. 排序算法 D. 解决问题的有限运算序列 2、一个顺序表的第一个元素的存储地址是90,每个元素的长度为2,则第8个元素的存储地址是()。 A. 102 B. 104 C. 106 D. 108 3、在一个长度为n的顺序表中删除第i个元素,需要向前移动()个元素。 A. n-i B. n-i+1 C. n-i-1 D. i+1 4、在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若p->next->next==head,则()。 A. p指向头结点 B. p指向尾结点 C. p的直接后继是头结点 D. p的直接后继是尾结点 5、在以下的叙述中,正确的是()。 A. 线性表的顺序存储结构优于链表存储结构 B. 线性表的顺序存储结构适用于频繁插入/删除数据元素的情况 C. 线性表的链表存储结构适用于频繁插入/删除数据元素的情况 D. 线性表的链表存储结构优于顺序存储结构 6、在一个单链表中,已知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; 7、在双向循环链表中,在p指针所指的结点后插入一个指针q所指向的新结点,修改指针的操作是()。 A. p->next=q; q->prior=p; p->next->prior=q; q->next=q; B. p->next=q; p->next->prior=q; q->prior=p; q->next=p->next; C. q->prior=p; q->next=p->next; p->next->prior=q; p->next=q; D. q->next=p->next; q->prior=p; p->next=q; p->next=q; 8、在单链表中,指针p指向元素为x的结点,实现删除x的后继的语句是()。 A. p=p->next; B. p->next=p->next->next; C. p->next=p; D.p=p->next->next; 9、在表长为n的顺序表中,当在任何位置删除一个元素的概率相同时,删除一个元素所需移动的平均个数为()。 A. (n-1)/2 B. n/2 C. (n+1)/2 D. n 10、将长度为n的单链表连接在长度为m的单链表之后的算法的时间复杂度为()。 A. O(1) B. O(n) C. O(m) D. O(m+n) 11、线性表的顺序存储结构是一种()存储结构。 A. 随机存取 B. 顺序存取 C. 索引存取 D. 散列存取 12、循环链表的主要优点是()。 A. 不再需要头指针 B. 已知某结点位置后能容易找到其直接前驱 C. 在进行插入、删除运算时能保证链表不断开 D. 在表中任一结点出发都能扫描整个链表 13、在下列对顺序表进行的操作中,算法时间复杂度为O(1)的是()。

2017监理继续教育必修课48小时-试题及答案[1]

1.单选题【本题型共60道题】 1.开标时,由()检查投标文件的密封情况。 A.投标人 B.投标人推选的代表 C.招标人委托的公证机构 D.投标人或者其推选的代表或招标人委托的公证机构 2.根据《安全生产许可证条例》,安全生产许可证颁发管理机关应当自收到申请之日起()日内审查完毕,经审查符合规定的安全生产条件的,颁发安全生产许可证。 A.90 B.60 C.45 D.30 3.根据《招标投标法》,投标人在招标文件要求提交投标文件的截止时间前,可以(),并书面通知招标人。 A.补充、修改或删除 B.补充、删除或撤回 C.删除、修改或撤回 D.补充、修改或撤回 4.招标投标的最终目的是为了签订合同,而合同的订立需要经过要约和承诺两个阶段,下列选项正确的是()。 A.招标是要约,投标是承诺 B.招标是要约邀请,投标是要约 C.投标是要约邀请,中标通知是要约 D.招标是要约,中标通知是承诺 5.根据《建设工程监理与相关服务收费标准》,计费额大于()亿元的,以计费额乘以039%的收费率计算收费基价,其他未包含的收费由双方协商议定。 A.1 B.10 C.100 D.1000 6.根据《建设工程质量管理条例》,工程监理单位与建设单位或者施工单位串通,弄虚作假、降低工程质量的,处()以下的罚款,降低资质等级或者吊销资质证书。

A.10万元以上30万元以下 B.20万元以上50万元以下 C.50万元以上100万元以下 D.100万元以上200万元以下 7.根据《安全生产法》,生产经营单位的主要负责人对本单位安全生产工作的职责不包括()。 A.建立、健全本单位安全生产责任制,组织制定本单位安全生产规章制度和操作规程 B.保证本单位安全生产投入的有效实施,督促、检查本单位的安全生产工作,及时消除生产安全事故隐患 C.组织具体的安全生产活动,监督工作人员的安全生产行为 D.组织制定并实施本单位的生产安全事故应急救援预案,及时、如实报告生产安全事故 8.根据《招标投标法》,必须进行招标的工程项目不包括()。 A.大型基础设施、公用事业等关系社会公共利益、公众安全的项目 B.完全由私人投资的项目 C.使用国际组织或者外国政府贷款、援助资金的项目 D.全部或者部分使用国有资金投资或者国家融资的项目 9.根据《建设工程安全生产管理条例》,工程监理单位和监理工程师应当按照法律、法规和工程建设强制性标准实施监理,并对建设工程安全生产承担()。 A.监理责任 B.安全责任 C.工程责任 D.连带责任 10.工程建设标准按照属性分为强制性标准和推荐性标准,下列关于强制性标准的说法中正确的是()。 A.强制性标准仅限为法律、行政法规规定强制执行的标准 B.强制性标准仅限为在批准发布时已明确的 C.批准发布时未明确为强制性标准,但其编号中带“/T”的,可视为强制性标准 D.强制性标准包括保障人体健康,人身、财产安全的标准和法律、行政法规规定强制执行的标准 11.建设单位申请领取施工许可证,应当具备下列条件不包括()。 A.已经办理该建筑工程用地批准手续 B.施工场地已经基本具备施工条件,拆迁等工作进度符合施工要求

数据结构与算法上海第二工业大学二工大期末考试试卷

选择题: 1、在数据结构中,线性结构中元素之间存在____关系。 A: 一对一 B: 一对多 C: 多对一 D: 多对多 2、数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的____和运算等的学科。 A: 结构 B: 关系 C: 操作 D: 算法 3、算法分析的两个主要方面是____。 A: 空间复杂度和时间复杂度 B: 正确性和简明性 C: 可读性和文档性 D: 数据复杂性和程序复杂性 4、顺序表中逻辑上相邻的节点其物理位置也____。 A: 一定相邻 B: 不必相邻 C: 按某种规律排列 D: 无要求 5、在一个单链表中,已知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; 6、一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是____。 A: edcba B: decba C: dceab D: abcde 7、循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是____。 A: (rear-front+m)%m B: rear-front+1 C: rear-front-1 D: rear-front 8、关于空格串,下列说法中正确的有____。 A: 空格串就是空串

B: 空格串是零个字符的串 C: 空格串的长度为零 D: 空格串的长度就是其包含的空格个数 9、数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A[8][5]的起始地址为____。A: SA+140 B: SA+144 C: SA+222 D: SA+225 10、对于一棵满二叉树,m个树叶,n个节点,深度为h,则____。 A: n=h+m B: h+m=2n C: m=h-1 D: n=2h-1 11、具有65个结点的完全二叉树其深度为____。(根的层次号为1) A: 8 B: 7 C: 6 D: 5 12、满二叉树____二叉树。 A: 一定是完全 B: 不一定是完全 C: 不是 D: 不是完全 13、将一棵有100个节点的完全二叉树从上到下,从左到右依次对节点进行编号,根节点的编号为1,则编号为49的节点的左孩子编号为____。 A: 99 B: 98 C: 50 D: 48 14、如果T2是由森林T转换而来的二叉树,那么T中结点的后序遍历就是T2中结点的____。A: 先序遍历 B: 中序遍历 C: 后序遍历 D: 层次遍历 15、将递归算法转换成对应的非递归算法时,通常需要使用____。 A: 栈 B: 队列 C: 链表 D: 树 16、如果某二叉树的前序为stuwv,中序为uwtvs,那么该二叉树的后序为____。 A: uwvts B: vwuts C: wuvts

相关主题
文本预览
相关文档 最新文档