文档库 最新最全的文档下载
当前位置:文档库 › 2010年数据结构习题集

2010年数据结构习题集

2010年数据结构习题集
2010年数据结构习题集

2009年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业基础综合

考试大纲教育部考试中心中国学位与研究生教育学会工科工作委员会

目录

I. 考查目标II. 考试形式和试卷结构考查范围III. 考查范围

数据结构计算机组成原理操作系统计算机网络

IV.试题示例

Ⅰ.考查目标

计算机学科专业基础综合考试涵盖数据机构、计算机组成原理、操作系统和计算机网络等学科专业基础课程。要求考生比较系统地掌握上述专业基础课程的概念、基本原理和方法,能够运用所学的基本原理和基本方法分析、判断和解决有关理论问题和实际问题。

Ⅱ.考试形式和试卷结构

一、试卷满分及考试时间本试卷满分为150分,考试时间为180分钟

二、答题方式答题方式为闭卷、笔试

三、试卷内容结构数据结构45分计算机组成原理45分操作系统35分计算机网络25分

四、试卷题型结构单项选择题80分(40小题,每小题2分)综合应用题70分

Ⅲ.考查范围

数据结构

【考查目标】

1.理解数据结构的基本概念;掌握数据的逻辑结构、存储结构及其差异,以及各种基本操作的实现。

2.掌握基本的数据处理原理和方法的基础上,能够对算法进行设计与分析。

3.能够选择合适的数据结构和方法进行问题求解。

一、线性表

(一)线性表的定义和基本操作

(二)线性表的实现1.顺序存储结构2.链式存储结构3.线性表的应用

二、栈、队列和数组(一)栈和队列的基本概念(二)栈和队列的顺序存储结构(三)栈和队列的链式存储结构(四)栈和队列的应用(五)特殊矩阵的压缩存储

三、树与二叉树(一)树的概念(二)二叉树1.二叉树的定义及其主要特征2.二叉树的顺序存储结构和链式存储结构3.二叉树的遍历4.线索二叉树的基本概念和构造5.二叉排序树6.平衡二叉树(三)树、森林1.书的存储结构2.森林与二叉树的转换3.树和森林的遍历(四)树的应用1.等价类问题2.哈夫曼(Huffman)树和哈夫曼编码

四、图(一)图的概念(二)图的存储及基本操作1.邻接矩阵法2.邻接表法(三)图的遍历1. 深度优先搜索2. 广度优先搜索(四)图的基本应用及其复杂度分析1. 最小(代价)生成树2. 最短路径3. 拓扑排序4. 关键路径

五、查找(一)查找的基本概念(二)顺序查找法(三)折半查找法(四) B-树(五)散列(Hash)表及其查找(六)查找算法的分析及应用

六、内部排序(一)排序的基本概念(二)插入排序1.直接插入排序2.折半插入排序(三)气泡排序(bubble sort)(四)简单选择排序(五)希尔排序(shell sort)(六)快速排序(七)堆排序(八)二路归并排序(merge sort)(九)基数排序(十)各种内部排序算法的比较(十一)内部排序算法的应用

Ⅳ.试题示例

一、单项选择题:1~40小题,每小题2分,共80分。在每小题给出的四个选项中,

请选出一项最符合题目要求的。

试题示例:

1、下列排序算法中,时间复杂度为O(nlog2n)且占用额外空间最少的是

A.堆排序B.起泡排序C.快速排序D.希尔排序

2、下列序列中,满足堆定义的是

A.(100,86,48,73,35,39,42,57,66,21)B.(12,70,33,65,24,56,48,92,86,33)

C.(103,97,56,38,66,23,42,12,30,52,6,26)D.(5,56,20,23,40,38,29,61,35,76,28,100)

二、综合应用题:41~47小题,共70分。试题示例:

41.(10分)设无向图G=(V,E),其中V={1,2,3,4,5},E={(1,2,4),(2,5,5),(1,3,2),(2,4,4),(3,4,1),(4,5,3),(1,5,8)},每条边由一个三元组表示,三元组中前两个元素为与该边关联的顶点,第三个元素为该边的权。请写出图G中从顶点1到其余各点的了短路径的求解过程。要求列出最短路径上的顶点,并计算路径长度.

42.(15分)已知一棵二叉树采用二叉链表存储,结点构造为:

LeftChild Data RightChild ,root指向根结点。现定义二叉树中结点X0 的根路径为从根结点到X0 结点的一条路径,请编写算法输出该二叉树中最长的根路径(多条最长根路径中只输出一条即可。算法可使用C或C + +或JAVA语言实现)。

第1 章绪论

一、单选题

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、语句的执行次数

二、判断题

1、数据结构是带有结构的数据元素的集合。()

2、程序越短,运行的时间就越少。( )

3、处理同一问题的算法是唯一的。( )

4、一个完整算法可以没有输入,但必须有输出。( )

三、填空题

1、______________是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

2、______________结构的数据元素之间存在一对多的关系。

3、数据结构的形式化定义为(D,S),其中D 是______________的有限集,S 是D 上关系的有限集。

4、数据结构在计算机中的______________称为存储结构。

5、数据元素之间的关系在计算机中有两种不同的表示方法:顺序映象和非顺序映象,由此得到两种不同的存储结构是______________存储结构和______________存储结构。

6、一个算法具有五个特性:______________、______________、______________、有零个或多个输入、有一个或多个输出。

7、评价一个算法的好坏应该从算法的正确性、可读性、___________和_________________等几方面进行。

四、解答题

1、设n为正整数。试确定下列各程序段中前置以记号@的语句的频度:

⑴i=1;k=0;

while (i<=n-1){ k+=10*i;i++;}

⑵i=1;k=0;do{@ k+=10*i;i++;} while (i<=n-1);

⑶i=1;k=0;while (i<=n-1){ i++;@ k+=10*i;}

⑷k=0;for (i=1;i<=n;i++){ for (j=i;j<=n;j++) @ k++;}

2、阅读以下算法:

void fun(int n)

{int i,j,k,s,x;

for (s=0,i=0;i

for (j=i;j

s++;

i=1;j=n;x=0;

while (i

printf("s=%d,x=%d\n",s,x);

}

⑴分析算法中语句“s++;”的执行次数;

⑵分析算法中语句“x+=2;”的执行次数;

⑶分析算法的时间复杂度。

五、算法设计题

编程实现课本例1-7所描述的抽象数据类型Triplet,并完成以下功能,要求有菜单提示:

⑴初始化三元组为(100,200,300);⑵获取第二个元素值并输出;⑶置第三个元素值为150;⑷获取第三个元素值并输出;⑸获取最大元素值并输出;

⑹获取最小元素值并输出;⑺撤销三元组。

第2章线性表

一、单选题

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) 线性表采用链式存储,不便于进行插入和删除操作;

7.假设双链表结点的类型如下:

typedef struct linknode {

int data ; //数据域

struct linknode *llink;//指向前趋结点的指针域

struct linknode *rlink;//指向后继结点的指针域

} bnode

现将一个q 所指新结点作为非空双向链表中的p 所指结点的前趋结点插入到该双链表中,能正确完成此要求的语句段是( )。

(A)q->rlink=p;q->llink=p->llink;p->llink=q;p->llink->rlink=q

(B)p->llink=q;q->rlink=p;p->llink->rlink=q;q->llink=p->llink

(C)q->llink=p->rlink;q->rlink=p;p->link->rlink=q;p->llink=q

(D)以上都不对

8. 一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是:

(A)110 (B)108 (C)100 (D)120

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

(A)访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)(B)在第i个结点后插入一个新结点(1≤i≤n)

(C)删除第i个结点(1≤i≤n)(D)将n个结点从小到大排序

10. 链式存储结构所占存储空间()

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

(C)只有一部分,存储表示结点间关系的指针(D)分两部分,一部分存放结点值,另一部分存放结点所占单元数

11. 若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。

(A) 单链表(B) 仅有头指针的单循环链表(C) 双链表(D) 仅有尾指针的单循环链表

12. 将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是()

(A)n (B)2n-1 (C)2n (D)n-1

13.线性表L在以下哪种情况下适用于使用链式结构实现()

(A)需经常修改L中的结点值(B)需不断对L进行删除插入(C)L中含有大量的结点(D)L中结点结构复杂

14.在一个单链表L中,若要删除由指针q所指向结点的后继结点,则执行()。

(A)p=q->next; p->next=q->next

(B)p=q->next; q->next=p

(C)p=q->next; q->next; q->next=q

(D)q->next=q=->next->next; q->next=q;

15.在非空双向循环链表中,在由q所指的结点后面插入一个由p所指的结点的过程是依次执行:p->Llink=q,p->Rlink=q->Rlink,q->Rlink=p,()。(括号中应该填上一条赋值语句)

(A)q->Llink=p (B)q->Rlink->Llink=p (C)p->Rlink->Llink=p (D)p->Llink->Llink=p

二、判断题

1.线性表的逻辑顺序与存储顺序总是一致的。( )2.顺序存储的线性表可以按序号随机存取。( )3.顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。( ) 4.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。( )5.在线性表的顺序存储结构中,插入和删除时,移动元素的个数与该元素的位置有关。( )6.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。( )7.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。( )8. 如果没有提供指针类型的语言,就无法构造链式结构。( ) 9. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动将后续各个单元向前移动。( ) 10. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。( ) 11. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。( )12. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。( )13. 在具有头结点的链式存储结构中,头指针指向链表中的第一个数据结点。( )14. 一个循环链表可以由所给定的头指针或者尾指针唯一确定。( )

三、填空题

1.线性结构的基本特征是:若至少含有一个结点,则除起始结点没有直接______外,其他结点有且仅有一个直接______;除终端结点没有直接______外,其它结点有且仅有一个直接______.

2.线性表的顺序存储结构通过________来直接反映数据元素之间的逻辑关系,而链式存储结构则通过_______间接反映数据元素之间的逻辑关系。3.线性表的常见链式存储结构有________、________和________。

4.对于长度为n的非空线性表,插入或者删除一个数据元素的操作的时间复杂度为_______。

5.在一个单链表中指针p所指结点之后插入一个由指针s所指结点,应执行s->next=________;和p->next=_____________的操作。

6.在一个单链表中删除指针p所指结点(若存在),则需要修改指针的操作是_______。

7.对于一个长度为n的非空顺序表,删除它的第i个数据元素时,需要移动_____个其他数据元素。

8.在以H为头指针的带表头结点的单循环链表中,链表为空的条件为。

9.在单链表中,每个结点包含有两个域,一个叫域,另一个叫域。

10.在下面数组a中存储着一个静态链表,表头指针为a[0].next,则该线性表为。

11.一元多项式f(x) =9x10-3x7+6x-5的单链表表示是____________。

四、解答题

1.何时选用顺序表、何时选用链表作为线性表的存储结构为宜?

2.简述带头结点和不带头结点的单链表的区别。

3.说明在顺序表中实现插入操作和删除操作时为什么必须移动数据元素,以及插入操作和删除操作各自移动数据元素的方向?

4.在单链表和双向链表中,能否从当前结点出发访问到任一结点?

5. 设有多项式

A(x)=7+3x+9x8+5x17

B(x)=8x+22x7-9x8

(1)用单链表给出A(x)的存储表示。(画出单链表示意图)

(2)用单链表给出B(x)的存储表示。(画出单链表示意图)

(3)以上述两个单链表为基础,通过插入和删除等运算得出A(x)+B(x)的存储表示,使其存储空间覆盖A(x)和B(x)的存储空间。(画出单链表示意图)

五、算法设计题

1.长度为n的递增有序顺序表,请写一的算法,将x插入到顺序表的中,并保持该表的有序性。

2.试写实现顺序表的就地逆置的算法,即利用原表的存储空间将线性表(a1,a2,…,an)逆置成(an,an-1,…,a1)

3.对单链表实现就地逆置。

4.试写一个高效算法,删除单链表中所有大于min且小于max的元素(若表中存在这样的元素)同时释放被删除结点的空间,并分析你的算法的时间复杂度(min和max是给定的两个参变量,它们的值可以和表中的元素相同,也可以不同)

5. 已知数组A[1..n]的元素类型为整型。设计算法将其调整为左右两部分,左边所有元素为奇数,右边所有元素为偶数,并要求算法的时间复杂度为o(n)。

6. 有两个按数据元素值递增有序排列的线性表A和B。编写算法将A表和B表归并成一个按元素值递增有序(即非递减有序,允许值相同)排列的线性表C,并要求利用原表(即A表和B表的)结点空间存放表C。(请分A,B均以顺序表作存储结构和A,B均以单链表作存储结构,这两种情况写算法)。

7. 假设有两个按数据元素值递增有序排列的线性表A和B,均以单链表作存储结构。编写算法将A表和B表归并成一个按元素值递减有序(相同值元素只保留一个)排列的线性表C,并要求利用原表(即A表和B表的)结点空间存放表C。

8. 已知一单链表中的数据元素含有三个字符(即:字母字符、数字字符和其它字符)。试编写算法,构造三个循环链表,使每个循环链表中只含同一类的字符,且利用原表中的结点空间作为这三个表的结点空间(头结点可另辟空间)。

9. 已知两个单链表A和B分别表示两个集合,其元素递增排列,编写一个函数求出A和B的交集C,要求C同样以元素递增的单链表形式存储。

第 3 章栈、队列和数组

一、单选题

1. 栈中元素的进出原则是( )。

(A) 先进先出(B)后进先出(C)栈空则进(D)栈满则出

2. 栈的插入与删除操作在( )进行。

(A) 栈顶(B) 栈底(C) 任意位置(D) 指定位置

3 .若让元素1,2,3依次进栈,则出栈次序不可能出现()种情况。

(A)3,2,1 (B)2,1,3 (C)3,1,2 (D)1,3,2

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

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

5.一般情况下,将递归算法转换成等价的非递增归算法应该设置( )。

(A)堆栈(B)队列(C)堆栈或队列(D)数组

6.链栈与顺序栈相比,有一个比较明显的优点即()

(A)插入操作更方便(B)通常不会出现栈满的情况(C)不会出现栈空的情况(D)删除操作更方便

7.设C语言数组Data[m+1]作为循环队列SQ的存储空间,front为队头指针,rear为队为指针,则执行出队操作的语句为()

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

8.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为

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

9. 设有一顺序栈T,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素出栈的顺序是s2,s3,s4,s6,s5,s1,则栈的容量至少应该是()

(A)2 (B)3 (C)5 (D)6

10.数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为(A)r-f (B)(n+f-r)% n (C)n+r-f (D)(n+r-f)% n

11.中缀表达式A-(B+C/D)*E的后缀形式是()

(A) AB-C+D/E* (B) ABC+D/-E* (C) ABCD/E*+- (D) ABCD/+E*-

12.一个算术表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为( )。

(A) -A+B*C/DE (B) A+B*CD/E (C) -+*ABC/DE (D) -+A*BC/DE

13.循环队列A[0..m-1]存放其元素,用front和rear分别表示队头和队尾,则循环队列满的条件是()。

(A)(Q.rear+1)%m==Q.front (B) Q.rear==Q.front+1 (C) Q.rear+1==Q.front (D) Q.rear==Q.front

14.解决计算机主机和打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则从该缓冲区中取出数据打印。该缓冲区应该是一个()结构

(A)栈(B)队列(C)线性表(D)数组

15.假设顺序栈的定义为:

typedef struct {

selemtype *base; /* 栈底指针*/

selemtype *top; /* 栈顶指针*/

int stacksize; /* 当前已分配的存储空间,以元素为单位*/

}sqstack;

变量st的类型为sqstack,则栈st为空的判断条件为()。

(A)st.base == NULL (B)st.top == st.stacksize (C)st.top-st.base>= st.stacksize (D)st.top == st.base

16.对于以行序为主序的存储结构来说,在数组A[c1···d1,c2···d2]中,c1和d1分别为数组A的第一个下标的上、下界,c2…d2分别为第二个下标的上、下界,每个数据元素占K个存储单元,二维数组中任一元素A[i,j]的存储位置可由( )式确定.

(A) Loc[i,j]=[( d2-c2+1)(i- c1)+(j- c2)]*k (B) Loc[i,j]=loc[c1, c2]+[( d2- c2+1)(i- c1)+(j- c2)]*k

(C) Loc{i,j}=A[c1, c2]+[( d2- c2+1)(i- c1)+(j- c2)]*k (D) Loc[i,j]=loc[0,0]+[( d2- c2+1)(i- c1)=(j- c2)]*k

17.对于基于三元组的稀疏矩阵转置的处埋方法以下说法正确的是( )

(A)按照矩阵A的列序来进行转置,算法的时间复杂度为0(nu+tu) (B)按照A的三元组a.data的次序进行转置,算法的时间复杂度为O(nu*tu)

(C)按照矩阵A的列序来进行转置的方法称快速转置(D)按照矩阵A的列序进行转置,对于tu<

18.稀疏矩阵的压缩存储方法是只存储( )

(A)非零元素(B)三元组(i,j, a ij)(C)a ij(D)i,j

19.基于三元组的稀疏矩阵,对每个非零元素a ij,可以用一个()唯一确定。

(A)非零元素(B)三元组(i,j,a ij) (C)a ij(D)i,j

20.三角矩阵可压缩存储到数组()中。

(A) M[1:n(n+1)/2+1] (B) M[1:n(n+1)/2] (C) M[n(n+1)/2+1] (D) M[n(n+1)/2]

21. 二维数组M[i,j]的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i的范围从O到4,列下标j的范围从O到5。M按行存储时元素M[3,5] 的起始地址与M按列存储时元素( )的起始地址相同。

(A) M [2,4] (B) M[3,4] (C) M[3,5] (D) M[4,4]

二、判断题

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

2. 队列是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。( )

3. 栈和队列是两种不同的数据结构。( )

4. 栈和队列是一种非线性数据结构。( )

5. 栈和队列的存储方式既可是顺序方式,也可是链接方式。( )

6. 当用户无法预估所用队列的最大长度,则宜采用链队列。( )

7. 一个栈的输入序列是12345,则栈的输出序列不可能是12345。( )

8. 栈和队列都是限制存储点的线性结构。( )

9.若将链栈看成一个单链表,则作进栈操作时,可以看成在单链表的首结点前插入新的结点。( )10.若将链栈看成一个单链表,则作退栈操作时,可以看成在单链表的首结点被删除。( )

三、填空题

1.在一个无头结点的链队列中,若队首指针与队尾指针的值相同,则表示该队列为或该队列。

2.向一个栈顶指针为T的链栈中插入一个新结点*p时,应执行和。

3.从一个栈顶指针为T的非空链栈中删除结点并不需要返回栈顶结点的值和回收结点时,应执行。

4.假定front和rear分别为一个无头结点的链队列的队首和队尾指针,则该链队列中只有一个结点的条件为。

5.后缀表达式“45*32+-”的值为。

6.一般地,一个n维数组可视为其数据元素为___________维数组的线性表。数组通常只有___________和___________两种基本运算。

7.通常采用___________存储结构来存放数组。对二维数组可有两种存储方法:一种是以___________为主序的存储方式,另一种是以___________为主序的存储方式。C语言数组用的是以___________序为主序的存储方法。

8.需要压缩存储的矩阵可分为___________矩阵和___________矩阵两种。

9.对称方阵中有近半的元素重复,若为每一对元素只分配一个存储空间,则可将n2个元素压缩存储到___________个元素的存储空间中。

10.假设以一维数组M(1:n(n+1)/2)作为n阶对称矩阵A的存储结构,以行序为主序存储其下三角(包括对角线)中的元素,数组M和矩阵A间对应的关系为___________。

11.上三角矩阵中,主对角线上的第t行(1<=t<=n)有___________个元素,按行优先顺序存放上三角矩阵中的元素a ij时,a ij之前的前i-1行共有___________个元素,在第i行上,a ij是该行的第___________个元素,M[k]和a ij的对应关系是_________。当i>j时,a ij=c,c存放在M[___________]中。

12.下三角矩阵的存储和对称矩阵类似。M[K]和a ij的对应关系是___________。

13.设有二为数组int M[10][20](注:m为0...10,n为0...20),每个元素(整数)栈两个存储单元,数组的起始地址为2000,元素M[5][10]的存储位置为___________,M[8][19]的存储值为___________。

四、解答题

1.若栈或队列采用顺序存储结构,则都存在“溢出”问题,请说明何谓“溢出”?

2. 有人说,采用循环链表作为存储结构的队列就是循环队列,你认为这种说法正确吗?说明你的理由。

3. 分别简述如何对一个前缀算术表达式求值的算法和一个后缀算术表达式求值的算法。

4.利用两个栈S1,S2模拟一个队列时,如何用栈的运算实现队列的插入、删除运算。请简述算法思想。

5. 设循环队列的容量为40(序号从0到39),现经过一系列的入队和出队运算后,有① front=11,rear=19; ② front=19,rear=11;问在这两种情况下,循环队列中各有元素多少个?

9.设有三对角矩阵(a ij)n*n,将其三条对角线上的元素逐行存于数组B(1:3n-2)中,使得B[k]=a ij,求:

(1)用i、j表示k的下标变换公式;

(2)用k表示i、j的下标变换公式.

五、算法设计题

1. 从键盘上输入一批整数,然后按相反的次序打印出来。

2. 试写一个算法,判别读入的一个以…@?为结束符的字符序列是否是“回文”,例如…abba?和…abcba?是回文,…abcde?和…ababab?则不是回文。

3. 判断算术表达式中的三种括号(圆括号,方括号,花括号)是否正确匹配。

4. 假设以数组que[m](假设数组范围在0..m)存放循环队列的元素,同时设变量rear和quelen分别指示循环队列中队尾元素位置和内含元素的个数。试给出此循环队列的队满条件,并写出相应的入队列和出队列的算法。

5. 用n个单元的一维数组构成的一个循环队列,试写由首指针front和尾指针rear计算出队列中元素个数的算法。

6.算术表达式由数字字母变量和加(+)、减(-)、乘(*)、除(\)运算符组成,编写一个函数把中缀表达式转换为后缀表达式。为使问题简化,可不考虑中缀表达式不正确的情况。

7.设算术表达式由数字字母变量和加(+)、减(-)、乘(*)、除(\)运算符组成,编写一个函数对以后缀表达式表示的算术表达式求值。为使问题简化,可不考虑后缀表达式不正确的情况。

8.假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针),试编写相应的初始化队列、入队列和出队列算法。9.编写算法:按行优先存储顺序,将稀疏矩阵转换为三元组的表示形式。

10.稀疏矩阵用三元组的表示形式,试写一算法实现两个稀疏矩阵相加,结果仍用三元组表示。

第 6 章树和二叉树

一、单选题

1、一个结点拥有的子树数称为该结点的

A、权

B、维数

C、度

D、序

2、n个结点的线索二叉树中线索的数目为

A、(n-1)个

B、n个

C、(n+1)个

D、(n+2)个

3、在有n个叶子结点的赫夫曼树中,其结点总数为

A、2n-1

B、2n

C、2n+1

D、2n+2

4、树最适合用来表示

A、有序数据元素

B、无序数据元素

C、元素之间具有分支层次关系的数据

D、元素之间无联系的数据

5、在一棵度为3的树中,度为3的结点个数为2,度为2 的结点个数为1,则度为0的结点个数为

A、4 B、5 C、6 D、7

6、二叉树是结点的有限集合,其根结点的个数

A、有0个或1个

B、有0个或多个

C、有且只有1个

D、有1个或1个以上

7、对二叉树从1开始进行连续编号,要求每个结点的编号大于其左右孩子的编号,同一个结点的左右孩子中,其左孩子的编号小于其右孩子的编号,则可采用哪种遍历方式实现编号

A、先序遍历

B、中序遍历

C、后序遍历

D、层次遍历

8、某二叉树T 有n 个结点,设按某种顺序对T 中的每个结点进行编号,且有如下性质:T 中任一结点v,其编号等于左子树上的最小编号减1,而v 的右子树的结点中,其最小编号等于v 左子树上的结点的最大编号加1,则可采用哪种遍历方式实现编号

A、先序遍历

B、中序遍历

C、后序遍历

D、层次遍历

二、判断题

1、一棵满二叉树,有n个结点,深度为h,则n=2h-1。( )

2、度为2的树是二叉树。( )

3、满二叉树一定是完全二叉树。( )

4、完全二叉树就是满二叉树。( )

5、深度为h 的非空二叉树的第i 层最多有2 i-1个结点。( )

6、二叉树叶子结点的数目只与度为2 的结点的数目有关,而与度为1 的结点的数目无关。( )

7、一棵有n ≥ 1 个结点的d 度树,若用多重链表表示,树中每个结点都有d 个链域,则在树的nd个链域中,有n(d-1)+1个是空域,只有n-1个是非空链域。( )

8、若有一个结点是某二叉树子树的中序遍历序列中的最后一个结点,则它必是该子树的先序遍历序列中的最后一个结点。( )

9、若有一个结点是某二叉树子树的先序遍历序列中的最后一个结点,则它必是该子树的中序遍历序列中的最后一个结点。( )10、不使用递归,也可实现二叉树的先序、中序和后序遍历。( )11、由二叉树的先序序列和中序序列可以唯一确定一棵二叉树。( )12、由二叉树的中序序列和后序序列可以唯一确定一棵二叉树。( )13、由二叉树的先序序列和后序序列可以唯一确定一棵二叉树。( )14、给定一组权值,可以唯一构造出一棵赫夫曼树。( )15、赫夫曼树一定是完全二叉树。( )16、赫夫曼树中没有度为1 的结点。( )17、在赫夫曼编码中,当两个字符出现的频率相同时,其编码也相同,对于这种情形应作特殊处理。( )18、将一棵树转换成二叉树(即,孩子兄弟树)存储,则根结点没有左子树。( )

三、填空题

1、三个结点的树的共有___________种形态,三个结点的二叉树共有___________种形态。

2、已知二叉树中叶子结点数为50,仅有一个孩子的结点数为30,则总结点数为________。

3、深度为6 的满二叉树共有___________个度为2 的分支结点。

4、在二叉链表中,判断某指针p所指结点为叶子结点的条件是_______________________。

5、任何非空树中有且仅有一个结点没有前驱结点,该结点就是树的___________。

6、已知树中结点总数为n,则此树中所有结点的度之和为___________。

7、在具有n个结点的各棵树中,其中深度最小的那棵树的深度是___________,它共有___________个叶子结点和___________个分支结点;其中深度最大的那棵树的深度是___________,它共有___________个叶子结点和___________个分支结点。

8、设深度为h 的二叉树只有度为0 和2 的结点,该二叉树的结点数可能达到的最大值为___________,最小值为___________。

9、已知按先序遍历二叉树的结果为ABC,则共有___________种不同的二叉树可以得到这一遍历结果。

四、解答题

1、已知一棵二叉树的先序遍历序列是ABCDEFGHIJK,中序遍历序列是CDBGFEAHJIK,请构造出该二叉树,并给出该二叉树的后序遍历序列。

2、已知五个权值分别为9,2,5,7,14的叶子结点:

①构造一棵赫夫曼树;②求此树的带权路径长度。

3、将下图所示的森林转化为二叉树。

4、已知二叉树的二叉链表定义如下:

typedef char TElemType;

typedef struct BiTNode {

TElemType data;

struct BiTNode *lchild,*rchild;

}*BiTree;

BiTree root;//root是指向以下二叉树根结点A的指针

void traversal(BiTree T)

{ if (T) { printf("%c",T->data);traversal(T->lchild);printf("%c",T->data);traversal(T->rchild);}

}

试回答下列问题:

⑴给出算法traversal(root)的输出结果;⑵分析算法traversal的时间复杂度。

5、已知一棵度为k的树中有n1个度为1的结点,n2个度为2的结点,……,n k个度为k 的结点,问该树中有多少个叶子结点?

6、已知在一棵含有n 个结点的树中,只有度为k 的分支结点和度为0的叶子结点。试求该树含有的叶子结点的数目。

7、找出所有满足下列条件的二叉树:

⑴它们在先序遍历和中序遍历时,得到的结点访问序列相同;⑵它们在后序遍历和中序遍历时,得到的结点访问序列相同;⑶它们在先序遍历和后序遍历时,得到的结点访问序列相同。

8、对第3题中森林分别进行先序遍历和中序遍历,给出遍历结果。

9、一棵含有n个结点的k叉树,可能达到的最大深度和最小深度各为多少?

10、已知一棵二叉树的层次遍历序列是ABCDEFGHIJ,中序遍历序列是DBGEHJACIF,请构造出该二叉树。

五、算法设计题

注:下列各题中的二叉树如未特殊说明均采用二叉链表作为存储结构。

1、参照课本提供的CreateBiTree和PreOrderTraverse算法,完成对下图所示二叉树的创建以及先序、中序和后序遍历操作。

2、求二叉树中分支结点和叶子结点的数目。

3、求二叉树的深度。

4、销毁二叉树中的所有结点,要求在销毁每一个结点前,输出该结点的数据域。

5、编写从上至下、从左到右按层次遍历二叉树的算法。

6、编写递归算法:将二叉树中所有结点的左、右子树相互交换。

7、编写算法判别给定二叉树是否为完全二叉树。

8、编写递归算法:输出在二叉树的先序序列中第k个位置的结点的数据域。

9、一棵二叉树的繁茂度定义为各层结点数的最大值与树的深度的乘积,编写算法求二叉树的繁茂度。

10、为二叉链表的结点中增加DescNum域,编写算法求二叉树每个结点的子孙数目并存入其DescNum域。

11、已知一颗二叉树的先序序列和中序序列,写一个建立该二叉树的二叉链表存储结构的算法。

12、给出二叉树中的一个非根节点(由指针p所指),求它的兄弟节点(要求用指针q指向它,若没有兄弟节点,这q为空)。

13、设计一个中序遍历非递归算法。

14、设计一个后序遍历非递归算法。

15、已知n个节点的完全二叉树已经顺序存储在一维数组A[1…n]中,试设计一算法将其变成二叉链表存储的完全二叉树。第7 章图

一、单选题

1、在一个图中,所有顶点的度数之和等于图的边数的倍。

A. 1/2

B.1

C. 2

D. 4

2、在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的倍。

A. 1/2

B.1

C. 2

D. 4

3、有8个结点的无向图最多有条边。

A. 14

B. 28

C. 56

D. 112

4、有8 个结点的有向完全图有条边(弧)。

A. 14

B. 28

C. 56 D.112

5、用邻接表表示图进行广度优先遍历时,通常采用来实现算法的。

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

6、用邻接表表示图进行深度优先遍历时,通常采用来实现算法的。

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

7、深度优先遍历类似于二叉树的。

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

8、广度优先遍历类似于二叉树的。

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

9、对如下图所示的无向图G ,若从顶点Vl 开始,按深度优先搜索法进行遍历,则可能的访问顺序为。

A. Vl V2 V5 V8 V4 V6 V7 V3

B. Vl V2 V3 V4 V5 V6 V7 V8

C. VI V2 V3 V4 V8 V5 V6 V7

D. Vl V2 V4 V5 V8 V3 V6 V7

10、对如图所示的无向图,若从顶点V1开始,按广度优先搜索法进行遍历,则可能访问的顺序为。

A. VI V2 V3 V4 V5 V6 V7 V8

B. VI V2 V6 V3 V4 V7 V8 V5

C. VI V2 V6 V3 V4 V5 V7 V8

D. VI V2 V4 V7 V3 V8 V6 V5

11、对如图所示的有向图G ,它的拓扑序列是。

A. a , b , c , d

B. a , d , b , c

C. a , b , d , c

D. b , a , d , c

12、对如下所示的图,它的生成树有棵。

A. 1

B. 5

C. 6 D.不确定

13、如图所示的有向图的顶点可以排成个不同的拓扑序列。

A.3 B.5 C. 7 D.9

14、一个有n个结点的图,最少有个连通分量,最多有个连通分量。

A.0 B.1 C.n-1 D.n

15、用有向无环图描述表达式(A+B)*((A+B)/A),至少需要顶点的数目为。

A.5 B.6 C.8 D.9

16、下列说法不正确的是。

A.图的遍历是从给定的源点出发每一个顶点仅被访问一次

B.遍历的基本算法有两种:深度遍历和广度遍历

C.图的深度遍历不适用于有向图

D.图的深度遍历是一个递归过程

17、无向图G=(V,E),其中:V={a,b,c,d,e,f}, E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)},对该图进行深度优先遍历,得到的顶点序列正确的是

A.a,b,e,c,d,f B.a,c,f,e,b,d C.a,e,b,c,f,d D.a,e,d,f,c,b

18、下面方法可以判断出一个有向图是否有环(回路):

A.深度优先遍历 B. 拓扑排序 C. 求最短路径 D. 求关键路径

19、在图采用邻接表存储时,求最小生成树的Prim 算法的时间复杂度为。

A. O(n)

B. O(n+e)

C. O(n2)

D. O(n3)

20、求解最短路径的Floyd算法的时间复杂度为。

A.O(n) B. O(n+c) C. O(n*n) D. O(n*n*n)

21、 已知有向图G=(V ,E),其中V={V 1,V 2,V 3,V 4,V 5,V 6,V 7},

E={,,,,,,,,},G 的拓扑序列是

A .V 1,V 3,V 4,V 6,V 2,V 5,V 7

B .V 1,V 3,V 2,V 6,V 4,V 5,V 7

C .V 1,V 3,V 4,V 5,V 2,V 6,V 7

D .V 1,V 2,V 5,V 3,V 4,V 6,V 7

22、

在有向图G 的拓扑序列中,若顶点Vi 在顶点Vj 之前,则下列情形不可能出现的是

A .G 中有弧

B .G 中有一条从Vi 到Vj 的路径

C .G 中没有弧

D .G 中有一条从Vj 到Vi 的路径 23、

在用邻接表表示图时,拓扑排序算法时间复杂度为

A. O(n)

B. O(n +e)

C. O(n*n)

D. O(n*n*n)

二、判断题

1.在n 个结点的无向图中,若边数大于n-1,则该图必是连通图。( )

2.有e 条边的无向图,在邻接表中有e 个结点。( )

3.有向图中顶点V 的度等于其邻接矩

阵中第V 行中的1的个数。(

)4.强连通图的各顶点间均可达。(

)5.用邻接矩阵法存储一个图所需的存储单元数目与图的边数有关。(

)6.有n 个顶

点的无向图, 采用邻接矩阵表示, 图中的边数等于邻接矩阵中非零元素之和的一半。( )7有向图的邻接矩阵是对称的。(

)8任何无向图都存在生

成树。( )9一个有向无环图的拓扑排序序列是唯一的。( )10.关键路径是AOE 网中从源点到终点的最长路径。(

)

三、填空题

1.设有一稠密图 G ,则 G 采用__________存储比较节省空间。

2.n 个顶点 e 条边的图采用邻接矩阵存储,深度优先搜索遍历算法的时间复杂度为 ____________,采用邻接表存储,深度优先搜索遍历算法的时间复杂度为___________。

3. n 个顶点的完全图有___________条边。

4.有 n 个顶点的无向连通图至少有 条边,有 n 个顶点的有向强连通图至少有 条弧。

5.用邻接矩阵表示无向图时,若图中有 n = 500 个顶点, m = 500 条边,则形成的邻接矩阵共有 个元素,其中 个为非零元素。

6.判断一个无向图是一棵树的条件是 。

7.若用n 表示图中顶点数目,则有_______条边的无向图成为完全图。

8.G 是一个非连通无向图,共有28条边,则该图至少有______个顶点。

9.在图G 的邻接表表示中,每个顶点邻接表中所含的结点数,对于无向图来说等于该顶点的______;对于有向图来说等于该顶点的______。 10. 对于一个具有n 个顶点e 条边的无向图的邻接表的表示,则表头向量大小为______,邻接表的边结点个数为______。

11.已知一无向图G=(V ,E ),其中V={a,b,c,d,e } E={(a,b),(a,d),(a,c),(d,c),(b,e)}现用某一种图遍历方法从顶点a 开始遍历图,得到的序列为abecd ,则采用的是______遍历方法。

12.为了实现图的广度优先搜索,除了一个标志数组标志已访问的图的结点外,还需______存放被访问的结点以实现遍历。 13.Prim (普里姆)算法适用于求______的网的最小生成树;kruskal (克鲁斯卡尔)算法适用于求______的网的最小生成树。 14.克鲁斯卡尔算法的时间复杂度为______,它对______图较为适合。

四、解答题 1、

已知无向图的邻接表如下, ①在给出顶点的图上,画出这个图的边; ②写出该图的邻接矩阵A ; ③根据邻接表,写出从顶点V 1出

发,深度优先遍历该图所得到的顶点序列。

1 2 3 4 5

2、 己知一无向图有 6 个结点, 9 条边,这 9 条边依次为( 0 , l ) , ( 0 , 2 ) , ( 0 , 4 ) , ( 0 , 5 ) ,( l , 2 ) , ( 2 , 3 ) , ( 2 , 4 ) , ( 3 , 4 ) , ( 4 , 5 )。试画出该无向图,并从顶点 0 出发分别写出按深度优先搜索和广度优先搜索进行遍历的结点序列。

3、 已知如图1 所示的有向图,给出该图的:

① 每个顶点的出度和入度; ② 强连通分量; ③ 最长的简单路径; ④ 最长的简单回路; ⑤ 进行拓扑排序,给出顶点的拓扑序列。 4、 对如图2所示的连通图,列出分别从顶点 A 、 D 开始,深度优先和广度优先搜索遍历该图所得到的顶点序列,画出相应的生成树。

提示:

图1 图2

5、设无向图G=(V,E),其中V={1,2,3,4,5},E={(1,2,4),(2,5,5),(1,3,2),(2,4,4),(3,4,1),(4,5,3),(1,5,8)},每条边由一个三元组表示,三元组中前两个元素为与该边关联的顶点,第三个元素为该边的权。请写出图G中从顶点1到其余各点的了短路径的求解过程。要求列出最短路径上的顶点,并计算路径长度。

6、下图是以边为活动的网(AOE_网),以V1为开始点,以V10为终止点,计算该AOE_网的关键路径长度(即,从开始点到终止点的

最长路径长度)。

7、对如下无向图,试给出:

①用普里姆算法构造最小生成树的过程②用克鲁斯卡尔算法构造最小生成树的过程

五、算法设计题

1、图G为有向无权图,试在邻接矩阵存储结构上实现删除一条边(v,w)的操作:DeleteArc(G,v,w)。若无顶点v或w,返回“ERROR”;若成功删除,则边数减1,并返回“OK”。(提示:删除一条边的操作,可以将邻接矩阵的第i行全部置0 ),完成该算法。

Status DeleteArc(MGraph &G,char v,char w) //在邻接矩阵表示的图G上删除边(v,w)

{ if ((i=LocateVex(G, v))<0) return ;

if ((j=LocateVex(G, w))<0) return ;

if (G.arcs[i][j].adj)

{ G.arcs[i][j].adj= ;

G.arcnum ; (或G.arcnum=G.arcnum-1 )

}

return ;

}

2、一个图采取以下结构,完成下列遍历算法。

void BFSTraverse(Graph G, Status (*Visit)(int v))

{ for (v=0; v

visited[v] = FALSE; //初始化访问标志

InitQueue(Q); // 置空的辅助队列Q

for ( v=0; v

if ( ) { // v 尚未访问

visited[v] = TRUE; Visit(v); // 访问u

EnQueue(Q, v); // v入队列

while (!QueueEmpty(Q)) {

DeQueue(Q, u); // 队头元素出队并置为u

for(w=FirstAdjVex(G, u); w>=0; w=NextAdjVex(G,u,w))

if ( ! visited[w]) {

visited[w]= ; Visit(w);

EnQueue(Q, w); // 访问的顶点w入队列

} // if

} // while

} //if

} // BFSTraverse

3、编程实现:用邻接表的存储方法创建一个图。

4、编程实现:对3题建立的图进行深度优先搜索。

第9 章查找

一、单选题

1、静态查找表与动态查找表两者的根本差别在于。

A、逻辑结构不同

B、存储实现不同

C、施加的操作不同

D、数据元素的类型不同

2、采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为。

A、n B、n/2 C、(n+1)/2 D、(n-1)/2

3、对线性表进行二分查找时,要求线性表必须。

A、以顺序方式存储

B、以链式方式存储

C、以顺序方式存储,且结点按关键字有序排序

D、以链式方式存储,且结点按关键字有序排序

4、在表长为n的顺序表中进行顺序查找,在查找不成功时,与关键字比较的次数为。

A、n

B、1

C、n+1

D、n-1

5、对于有序表(2,5,7,11,22,45,49,62,71,77,90,93,120),折半查找值为90的结点时,经过比较后查找成功。

A、1

B、 2

C、4

D、5

6.快速排序在最坏情况下的时间复杂度是( )。

A、O(log2n)

B、O(nlog2n)

C、O(n2)

D、O(n3)

7、如果要求一个线性表既能较快地查找,又能适应动态变化的要求,可以采用查找方法。

A、分块

B、顺序

C、二分

D、散列

8、有一个长度为12的有序表,按二分查找法对该表进行查找,在表内各元素等概率情

况下查找成功所需的平均比较次数为。

A、35/12

B、37/12

C、39/12

D、43/12

9、当采用分块查找时,数据的组织方式为。

A、数据分为若干块,每块内数据有序

B、数据分为若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块

C、数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块

D、数据分为若干块,每块(除最后一块外)中数据个数需相同

10.在排序过程中,键值比较的次数与初始序列的排列顺序无关的是()。

A、直接插入排序和快速排序

B、直接插入排序和归并排序

C、直接选择排序和归并排序

D、快速排序和归并排序和归并排

11、从键盘依次输入关键字的值:t,u,r,b,o,p,a,s,c,l。建立二叉排序树,则先序遍历序列为。

A、abcloprstu

B、alcpobsrut

C、trbaoclpsu

D、trubsaocpl

12、设有一组记录的关键字为{19,24,23,1,68,20,84,27,55,11,10,79},用链地址法构造哈希表,哈希函数为H(KEY)=KEY MOD 13 ,哈希地址为1的链中有个记录。

A、1

B、2

C、3

D、4

13、在采用线性探测法处理冲突所构成的闭散列表上进行查找,可能要探测多个位置,在查找成功的情况下,所探测的这些位置上的健值。

A、一定都是同义词

B、一定都不是同义词

C、都相同 D 、健值不一定有序的顺序表

14、设哈希表长为14,哈希函数为H(key)= key mod 11,表中已经有4个结点:addr(14)=3, addr(38)=5, addr(61)=6, addr(85)=8,其余地址为空,用线性探测再

散列法解决冲突,关键字为49的结点的地址为。

A、7

B、3

C、5

D、4

15、设有序表的关键字序列为{1,4,6,10,18,35,42,53,67,71,78,84,92,99},当用二分查找法查找健值为84的结点时,经

次比较后查找成功。

A、2

B、3

C、4

D、12

16、已知一采用开放地址法解决Hash表冲突,要从此Hash表中删除一个记录,正确的做法是。

A、将该元素所在的存储单元清空。

B、将该元素用一个特殊的元素代替

C、将与该元素有相同Hash地址的后继元素顺次前移一个位置。

D、用与该元素有相同Hash地址的最后插入表中的元素替代。

17、以下说法错误的是。

A、数字分析法对健值的各位进行分析,选择分布较均匀的若干位组成散列地址。

B、除余法选择一个适当的正整数p,以p除健值以所得的余数作为散列地址。

C、平方取中法以健值平方的中间几位作为散列地址。

D、基数转换法将健值看成另一种进制的数再转换成原来进制的数,然后选择其中几位作为散列地址。

18、下面关于B-树和B+树的叙述中,不正确的是。

A、B-树和B+树都是平衡的多叉树

B、B-树和B+树都可用于文件的索引结构

C、B-树和B+树都能有效地支持顺序检索

D、B-树和B+树都能有效地支持随机检索

19、下列关于m阶B-树的说法错误的是。

A、根结点至多有m棵子树。

B、所欲叶子都在同一层

C、非叶子结点至少有m/2(m为偶数)或m/2+1(m为奇数)棵子树

D、根结点中的数据都是有序的。

20、一棵3阶B-树中含有2047个关键字,包含叶结点层,该树的最大深度为。

A、11

B、12

C、13

D、14

21、一棵深度为k的平衡二叉树,其每个非终端结点的平衡因子均为0,则该树共有个结点。

A、2k-1-1

B、2k-1

C、2k-1+1

D、2k-1

22、分别以下列序列构造二叉排序树,与用其他三个序列所构造的结果不同的是。

A、(100,80,90,60,120,110,130) B 、(100,120,110,130,80,60,90) C 、(100,60,80,90,120,110,130) D 、(100,80,60,90,120,130,110)

23、设二叉排序树中关键字由1至1000的整数构成,现要查找关键字为363的结点,下述关键字序列哪一个不可能是在二叉排序树上查到的序列?

A、2,252,401,398,330,344,397,363;

B、924,220,911,244,898,258,362,363;

C、925,202,911,240 ,912,245,363;

D、2,399,387,219,266,382,381,278,363。

24、在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点的左孩子的平衡因子为0,右孩子的平衡因子为1,则应作型调整以使其平衡。

A 、LL B、LR C、RL D、RR

二、判断题

1.n个数放在一维数组中,在进行顺序查找时,这n个数的排列有序或无序其平均查找长度不同。( )2若散列表的装填因子小于1,则可避免碰

撞的产生。( )3哈希表的平均查找长度与处理冲突的方法无关。( )4对无序表用折半法查找比顺序查找法快。( )5在二叉排序树中插入一个新结点,总是插入到叶节点下面。( )6平衡二叉树中,若某个结点的左、右孩子的平衡因子为零,则该结点的平衡因子一定是零。( )7对两棵具有相同关键字而形状不同的二叉排序树,按中序遍历得到的序列却是一致的。( )8、完全二叉树肯定是平衡二叉树( )9、在9阶B-树中,除叶子以外的任意结点的分支数介于5和9之间。( )10、如果完全二叉树从根结点开始按层次遍历的序列为1,2,3,4,5,6,7,则该完全二叉树是二叉排序树。( )11m阶B-树的任何一个结点的左右子树高度都相等。( )12、设二叉排序树中关键字互不相同,则其中最小元必无左孩子,最大元必无右孩子。( )13、对给定的关键字集合,以不同的次序插入初始为空的树中,将得到同一棵二叉排序树。( )

三、填空题

1.动态查找表和静态查找表的重要区别在于前者包含有和运算,而后者不包含这两种运算。

2.对n个记录的表中进行折半查找,最大比较次数是。

3.顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为次;当使用监视哨时,若查找失败,则比较关键字的次数为。

4.已知有序表为(12,18,24,35,47,50,62,83,90,115,134),当用二分法查找90时,需次查找成功,查找47时需

次成功,查找100时,需 次才能确定不成功。

5.在具有24个元素的有序表上进行二分查找,则比较一次查找成功的结点数为______,比较二次查找成功的结点数为________,比较三次查找成功的结点数为_________,比较四次查找成功的结点数为________,比较五次查找成功的结点数为__________。总的比较查找长度为__________。 6.使用分块查找时,除表本身外,尚需建立一个 ,用来存放每一块中的最大值以及该块的起始位置。 7.采用散列技术来实现查找,需要解决的问题有:

;

;

8.、在各种查找方法中,平均查找长度与结点个数无关的查找方法是

9.含有12个结点的平衡二叉树的最大深度是

。(设根结点深度为1)

10.如果将n 个元素,按其关键字递增的顺序依次插入到二叉排序树中,则对这样的二叉排序树检索时,平均比较次数为 。 11.在一个127阶的B-树上,每个结点中包含的关键字数目最多允许为

个,除根结点外的非终端至少有

棵子树。

12. 一棵深度为k 的平衡二叉树,其每个非终端结点的平衡因子均为0,则该树共有 个结点。

13.高度为5的平衡二叉树;其结点数最多可以有

个;最少可以是

个。

14.在一棵m 阶的B-树中,当一关键字插入某结点而引起该结点分裂时,此结点原有 个关键字。若删去某结点中的一个关键字,而导致该结点合并时,该结点中原有

个关键字。

15.一个待散列存储的线性表为(18,34,58,26,75,67,48,93,81),哈希函数为H(key)=key%11 ,若采用线性探测法解决冲突,则平均查找长度为

;若采用链地址法解决冲突,则平均查找长度为

16.假定有k 个关键字互为同义词,若用线性探测法把这k 个关键字存入散列表中,至少要进行

探测。

四、解答题

1.简述顺序查找法,折半查找法和分块查找法对被查找表中元素的要求。 2.假定对有序表(3,4,5,7,24,30,42,54,63,72,87,95)进行折半查找,试回答下列问题:

(1)画出描述折半查找过程的判定树。

(2)若查找元素54,需依次与那些元素比较。

(3)若查找元素90,需依次与那些元素比较。(4)

求查找成功时的平均查找长度。

3、对下面的关键字集{30,15,21,40,25,26,36,37}若查找表的装填因子为0.8,采用线性探测再散列方法解决冲突,哈希函数为H (key )=key % 7,画出该哈希表,并计算查找成功的平均查找长度。

4.设有一组关键字{ 9,1,23,14,55,20,84,27 }.采用哈希函数:H(key)=key %7。 采用开放地址法的二次探测再散列方法解决冲突

),2,1(10mod ))((22 =+=i i i d d key H H ,试对该关键字序列构造哈希表,并计算查找成功的平均查找长度。

5.输入一个正整数序列(17,31,13,11,20,35,25,8,4,11,24,40,27)画出该二叉排序树。依此二叉排序树,如何得到一个递增序列?

6.一棵二叉排序树结构如下图所示,各结点的值分别为1,2,3,...9,请在图中标出各结点的值。

第6第第

7.已知插入结点的序列为(17,31,13,11,20,35,25,8,4,11,24,40,27),请画出该二叉排序树,并分别给出下列操作后的二叉排序树: (1)插入数据9;

(2)删除数据17;

(3)再删除结点13;

8.按下列次序输入关键字:(E,F,P,K,M,L,B ),请画出A VL 树的构造和调整过程。要求画出每插入一个关键字后查找树的形状及调整后的结果,并标明调整类型。

9.深度为6的平衡二叉树中最少应包含多少个结点,并画出这样一棵平衡二叉树。

10.从空树开始,依次输入结点20,30,50,52,60,68,70,画出建立3阶B-树的过程。并画出删除结点50和68后的B-树状态。

五、算法设计题

1.设顺序表中关键字是递增有序的,试写一顺序查找算法,将哨兵设在表的高下标端。然后求出等概率情况下查找成功与失败时的ASL 。 2.试编写一个判别给定的二叉树是否为二叉排序树的算法。设此二叉树以二叉链表为存储结构,且树中结点的关键字均不相同.

3. 试写一递归算法,从大到小输出二叉排序树中所有其值不小于X的关键字。

4.设二叉排序树的各元素均不相同,试分别采用递归和非递归算法按递减

..顺序打印所有左子树为空,右子树非空的结点的数据域的值。

5. 试编写一个算法,删除二叉排序树中所有关键字不小于x的结点,并释放该结点空间。

6. 试编写一个算法,将两棵二叉排序树合并为一棵二叉排序树。

7.写出从哈希表中删除关键字为k的一个记录的算法;设哈希函数为H,解决冲突的方法为链地址法。

第10 章内部排序

一、单选题

1.在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是。

(A)希尔排序(B)起泡排序(C)插入排序(D)选择排序

2.在待排序的元素序列基本有序的前提下,效率最高的排序方法是。

(A)插入排序(B)选择排序(C)快速排序(D)归并排序

3.设有5000个无序的元素,希望用最快的速度挑选出其中前l0个最大的元素,最好选用排序法。

(A)起泡排序(B)快速排序(C)堆排序(D)基数排序

4.排序方法中,从未排序序列中依次取出元素与已排序序列(初始为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为

(A)希尔排序(B)起泡排序(C)插入排序(D)选择排序

5.下列排序算法中,稳定的是。

(A)直接插入排序和快速排序(B)折半插入排序和冒泡排序(C)简单选择排序和四路归并排序(D)树形选择排序和希尔排序

6.下述几种排序方法中,平均查找长度最小的是。

(A)插入排序(B)直接选择排序(C)快速排序(D)归并排序

7.下述几种排序方法中,要求内存量最大的是。

(A)插入排序(B)选择排序(C)快速排序(D)、归并排序

8.快速排序方法在情况下最不利于发挥其长处。

(A)要排序的数据量太大(B)要排序的数据中含有多个相同值(C)要排序的数据已基本有序(D)要排序的数据个数为奇数

9.下列排序方法中,可能出现这种情况:在最后一趟开始之前,所有元素都不在其最终应在的正确位置上。

(A)快速排序(B)冒泡排序(C)堆排序(D)插入排序

10.当初始序列已按健值有序时,用直接插入算法进行排序,需要比较的次数为

(A) n-1 (B)log2n (C) 1 (D)n2

11.快速排序在最坏的情况下的时间复杂度是。

(A) O(log2n) (B)O(nlog2n) (C) O(n2) (D)O(n3)

12.在排序过程中,健值比较的次数与初始序列的排列顺序无关的是。

(A)直接插入排序和快速排序(B)直接插入排序和归并排序(C)直接选择排序和归并排序(D)快速排序和归并排序13.下列排序方法中,哪一个是稳定的排序方法。

(A)直接选择排序(B)二分法插入排序(C)希尔排序(D)快速排序

14.在文件“有序”或文件长度较小的情况下,最佳内部排序的方法是。

(A)直接插入排序(B)选择排序(C)冒泡排序(D)快速排序

15.对一个由n个整数组成的序列,借助排序过程找出其中的最大值,希望比较次数和移动次数最少,应选用方法。

(A)归并排序(B)直接插入排序(C)直接选择排序(D)快速排序

16.下列排序算法中排序在一趟结束后不一定能选出一个元素在其最终位置上。

(A) 选择排序(B)冒泡排序(C)归并排序(D)堆排序

17.一组记录的关键字为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序表,用归并排序方法对该序列进行一趟归并后的结果为。

(A).15,25,35,50,20,40,80,85,36,70 (B)15,25,35,50,80,20,85,40,70,36

(C)15,25,50,35,80,85,20,36,40,70 (D)15,25,35,50,80,20,36,40,70,85

18. 一组记录的关键字为(56,34,23,38,40,69),则利用直接插入排序的方法,经过3趟排序之后,其关键字序列为。

(A) 34,56,23,38,40,69 (B) 34,38,23,56,40,69 (C) 23,34,56,38,40,69 (D) 23,34,38,56,40,69

19. 数据序列(8,9,10,4,5,6,20,1,2)只能是下列排序算法中的的两趟排序后的结果。

(A)选择排序(B)冒泡排序(C)插入排序(D)堆排序

20. 一组记录的关键码为(46,79,56,38,40,84),用堆排序的筛选方法建立的初始堆为。

(A) 79,46,56,38,40,80 (B) 84,79,56,38,40,46 (C) 84,79,56,46,40,38 (D)A,B,C都不对

21. 下面四个序列中,是一个堆。

(A)16,72,31,23,94,53 (B)94,53,31,72,16,23 (C) 16,53,23,94,31,72 (D) 16,31,23,94,53,72

22. 一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为。

(A)38,40,46,56,79,84 (B)40,38,46,79,56,84 (C)40,38,46,56,79,84 (D)40,38,46,84,56,79

23. 用某种排序方法对线性表(25,84,21,47,15,27,68,35,20) )进行排序时,元素序列的变化情况如下:

(1)25,84,21,47,15,27,68,35,20 (2)20.15.21.25,47,27,68,35,84

(3)15,20,21,25,35,27,47,68,84 (4)15,20,21,25,27,35,47,68,84

则所采用的排序方法是。

(A)选择排序(B)希尔排序(C)归并排序(D)快速排序

24. 对序列(15,9,7,8,20,-1,4)进行排序,进行一趟后数据的排列变为(4,9,-1,8,20,7,15)则采用的是排序。

(A) 选择(B) 快速(C) 希尔(D) 起泡

25. 对(05,46,13,55,94,17,42)进行基数排序,一趟排序的结果是。

(A)(05,46,13,55,94,17,42)(B)(05,13,17,42,46,55,94)

(C)(42,13,94,05,55,46,17)(D)(05,13,46,55,17,42,94)

二、填空题

1、若待排序的序列中存在多个记录具有相同的键值,经过排序,这些记录的相对次序仍然保持不变,则称这种排序方法是________的,否则称为____的。

2、按照排序过程涉及的存储设备的不同,排序可分为________排序和________排序。

3、按排序过程中依据的不同原则对内部排序方法进行分类,主要有:________、________、________、________等四类。

4、简单选择排序算法在最好情况下和最坏情况下的时间复杂度分别为_________和_________。

5、高度为h的堆中,最多有_______ 个元素,最少有_______个元素。

6、若不考虑基数排序,则在排序过程中,主要进行的两种基本操作是关键字的___________ 和记录的___________。

7、在堆入排序、希尔排序、选择排序、快速排序、堆排序、归并排序和基数排序中,排序是不稳定的有______________________ 。

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

9、直接插入排序用监视哨的作用是_________________。

10、在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置需比较_______次。

11、利用快速排序方法对记录(50,40,95,20,15,70,60,45,80)进行快速排序,其需递归调用的次数为________,其中第二次递归调用是对________组记录进行快速排序。

12、在堆排序,快速排序和归并排序中,若只从存储空间考虑,则首先选取________方法,其次选取________方法;若只从排序结果的稳定性考虑,则应

选取________方法;若只

从平均情况下排序最快考虑,则应选取________方法;若只从最坏情况下排序最快并且要节省内存考虑,则应选取________方法。

13、对于关键字序列(12,13,11,18,60,15,7,20,25,100),用筛选法建堆,必须从键值为的关键字开始

三、判断题

1直接选择排序在最好情况下的时间复杂度是O(n)。( )2在初始数据表已经有序时,快速排序算法的时间复杂度为O(nlogn)。( )3在用堆排序算法排序时,如果要进行增序,则需要采用“大顶堆”。 ( )4在待排数据基本有序的情况下,快速排序的效果最好。( )5两分法插入排序所需比较次数与待排序记录的初始状态相关。( )6希尔排序的最后一趟与直接插入排序过程相同。( )7在任何情况下,归并排序都比简单排序速度快。( )8堆是满二叉树。( )9、堆肯定是一棵平衡二叉树。( )10、内排序要求数据一定要以顺序方式存储。( )11、快速排序和归并排序在最坏情况下的比较次数都是O(nlogn)。( )12、用希尔排序法时,若关键字的初始排序杂乱无序,则排序效率就低。( )13、基数分类只适用于以数字为关键字的情况,不适用以字符串为关键字的情况。( )14、若中序遍历平衡的二叉排序树,可得到排好序的关键字序列。( )15、在执行某个排序算法过程中,出现了排序码朝着最终排序序列位置相反方向移动,则该算法是不稳定的。( )

四、解答题

1.已知数据序列为(12,5,9,20,6,31,24),对该数据序列进行排序,试写出插入排序和冒泡排序每趟的结果。

2.判断下列两序列是否为堆?如不是,按照建堆的思想把它调整为堆,并用图表示建堆的过程。

(1)(100,90,80,60,85,75,20,25,10,70,65,50);(2)(100,70,50,20,90,75,60,25,10,85,65,80)。

3.对于下列一组关键字(12,2,16,30,8,28,4,10,20,6,18),试写出用下列算法从小到大排序时第一趟结束时的序列。

(1)希尔排序(第一趟排序的增量为5)(2)快速排序(选第一个记录为枢纽)(3)基数排序。

4.有n个不同的英文单词,它们的长度相等,均为m,若n>>50,m<5,试问采用什么排序方法时间复杂性最佳?为什么?

5. 已知序列(54,21,52,14,98,47,41,75,5,62),请给出采用堆排序法对该序列作升序排序时的每一趟结果。

6.已知序列(53,82,62,71,93,70,34,25,47,29),请给出采用二路归并排序法对该序列作升序排序时的每一趟结果。

五、算法设计题

1.以下是直接选择排序的算法,请补充完整。

void selectSort(list r,int n)

{//对于包含n个元素的待排序列r进行直接选择排序

for(i=1;i<=________;i++) {k=i;

for(j=i+1;j<=n;j++)if(r[j].key

if(______)swap(r[k],r[i]); }

}

2.以下对进行一趟快速排序,请补充完整。

int quickpass(list r,int h,int p)

{//对子序列r[h],r[h+1],……r[p]进行一趟快速排序,以第一个记录的键值为枢纽

i=h;j=p;x=r[i];

while(i

{ while((r[j].key>=x.key)&&(i

if(i

{________; i++;

while((r[i].key<=x.key)&&(i

if(i

}

}

r[i]=________;return(i);

数据结构习题及答案——严蔚敏

第一章绪论 一、选择题 1.组成数据的基本单位是() (A)数据项(B)数据类型(C)数据元素(D)数据变量 2.数据结构是研究数据的()以及它们之间的相互关系。 (A)理想结构,物理结构(B)理想结构,抽象结构 (C)物理结构,逻辑结构(D)抽象结构,逻辑结构 3.在数据结构中,从逻辑上可以把数据结构分成() (A)动态结构和静态结构(B)紧凑结构和非紧凑结构 (C)线性结构和非线性结构(D)内部结构和外部结构 4.数据结构是一门研究非数值计算的程序设计问题中计算机的(①)以及它们之间的(②)和运算等的学科。 ① (A)数据元素(B)计算方法(C)逻辑存储(D)数据映像 ② (A)结构(B)关系(C)运算(D)算法 5.算法分析的目的是()。 (A)找出数据结构的合理性(B)研究算法中的输入和输出的关系 (C)分析算法的效率以求改进(D)分析算法的易懂性和文档性 6.计算机算法指的是(①),它必须具备输入、输出和(②)等5 个特性。 ① (A)计算方法(B)排序方法(C)解决问题的有限运算序列(D)调度方法

② (A)可执行性、可移植性和可扩充性(B)可行性、确定性和有穷性 (C)确定性、有穷性和稳定性(D)易读性、稳定性和安全性 二、判断题 1.数据的机内表示称为数据的存储结构。() 2.算法就是程序。() 3.数据元素是数据的最小单位。() 4.算法的五个特性为:有穷性、输入、输出、完成性和确定性。() 5.算法的时间复杂度取决于问题的规模和待处理数据的初态。() 三、填空题 1.数据逻辑结构包括________、________、_________ 和_________四种类型,其中树形结构和图形结构合称为_____。 2.在线性结构中,第一个结点____前驱结点,其余每个结点有且只有______个前驱结点;最后一个结点______后续结点,其余每个结点有且只有_______个后续结点。 3.在树形结构中,树根结点没有_______结点,其余每个结点有且只 有_______个前驱结点;叶子结点没有________结点,其余每个结点的后续结点可以_________。 4.在图形结构中,每个结点的前驱结点数和后续结点数可以 _________。 5.线性结构中元素之间存在________关系,树形结构中元素之间存 在______关系,图形结构中元素之间存在_______关系。 6.算法的五个重要特性是_______、_______、______、_______、

2008年10月--2011年10月全国自考《概率论与数理统计》(经管类)真题及答案

全国2008年10月高等教育自学考试 概率论与数理统计(经管类)试题及答案 课程代码:04183 一、单项选择题(本大题共10小题,每小题2分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.设A 为随机事件,则下列命题中错误..的是( ) A .A 与A 互为对立事件 B .A 与A 互不相容 C .Ω=?A A D .A A = 2.设A 与B 相互独立,2.0)(=A P ,4.0)(=B P ,则=)(B A P ( ) A .0.2 B .0.4 C .0.6 D .0.8 3.设随机变量X 服从参数为3的指数分布,其分布函数记为)(x F ,则=)3 1 (F ( ) A . e 31 B .3 e C .11--e D .13 11-- e 4.设随机变量X 的概率密度为? ??≤≤=,,0, 10,)(3其他x ax x f 则常数=a ( ) A . 41 B .3 1 C .3 D .4 5.设随机变量X 与Y 独立同分布,它们取-1,1两个值的概率分别为 41,4 3 ,则{}=-=1XY P ( ) A .161 B . 16 3 C . 4 1 D .8 3 6.设三维随机变量),(Y X 的分布函数为),(y x F ,则=∞+),(x F ( ) A .0 B .)(x F X C .)(y F Y D .1 7.设随机变量X 和Y 相互独立,且)4,3(~N X ,)9,2(~N Y ,则~3Y X Z -=( ) A .)21,7(N B .)27,7(N

2010年9月全国计算机等级考试二级JAVA真题及答案

2010年9月全国计算机等级考试二级JA V A真题及答案 一、选择题(每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是B A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构 D)上述三种说法都不对 (2)下列叙述中正确的是C A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化 C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 D)上述三种说法都不对

(3)软件测试的目的是D A)评估软件可靠性B)发现并改正程序中的错误 C)改正程序中的错误D)发现程序中的错误 (4)下面描述中,不属于软件危机表现的是B A)软件过程不规范B)软件开发生产率低C)软件质量难以控制D)软件成本不断提高 (5)软件生命周期是指A A)软件产品从提出、实现、使用维护到停止使用退役的过程B)软件从需求分析、设计、实现到测试完成的过程 C)软件的开发过程 D)软件的运行维护过程 (6)面向对象方法中,继承是指D A)一组对象所具有的相似性质 B)一个对象具有另一个对象的性质 C)各对象之间的共同性质 D)类之间共享属性和操作的机制 (7)层次型、网状型和关系型数据库划分原则是D A)记录长度

B)文件的大小 C)联系的复杂程度 D)数据之间的联系方式 (8)一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员、与实体计算机之间的联系是C A)一对一 B)一对多 C)多对多 D)多对一 (9)数据库设计中反映用户对数据要求的模式是C A)内模式 B)概念模式 C)外模式 D)设计模式 (10)有三个关系R、S和T如下:A

数据结构和算法习题及答案解析

第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--;} else x++; (2)for (i=0; i

2008年9月全国计算机等级考试三级数据库技术笔试试卷及答案

2008年9月全国计算机等级考试三级:数据库技术笔试试卷及答案 一、选择题(每小题1分,共60分) (1)下列关于系统软件的叙述中,不正确的是( A )。 A)系统软件是在应用软件基础上开发的B)系统软件应提供友好的编程接口 C)系统软件与硬件密切相关D)数据库管理系统属于系统软件 (2)计算机硬件功能部件中,完成对数据加工的部件是( A )。 A)运算器B)控制器C)存储器D)输入/输出设备 (3)多媒体网络应用及实时通信要求网络高速率、低延迟传输。下列( A )技术满足这类应用的要求。 A)ATM B)FDDI C)FR D)X.25 (4)下列( B )不是Internet提供的主要服务。 A)WWW服务B)数字视频影像服务C)电子邮件服务D)文件传输 (5)下列( B )不是对网络进行服务攻击的结果。 A)网络丧失服务能力B)网络通信线路瘫痪 C)网站的主页被涂改D)网站的WWW服务器瘫痪 (6)针对操作系统安全,为了防止由于误操作而对文件造成破坏,要采用的方法是( B )。 A)保密B)保护C)审计D)认证 (7)下列关于顺序存储结构的叙述中,不正确的是(C )。 A)结点之间的关系由存储单元的邻接关系来体现B)存储密度大,存储空间利用率高 C)插入、删除操作灵活方便,不必移动结点D)可以通过计算直接确定第i个结点的存储地址 (8)下列与算法有关的叙述中,不正确的是( D )。 A)运算是数据结构的一个重要方面,运算的实现步骤用算法来描述 B)算法是精确定义的一系列规则,它指出怎样从给定的输入信息经过有限步骤产生所求的输出信息 C)算法的设计采用由粗到细,由抽象到具体的逐步求精的方法 D)对于算法的分析,指的是分析算法运行所要占用的机器时间,即算法的时间代价 (9)下列关于栈和队列的叙述中,正确的是( A )。 Ⅰ.栈和队列都是线性表 Ⅱ.栈和队列都不能为空 Ⅲ.栈和队列都能应用于递归过程实现 Ⅳ.栈的操作原则是后进先出,而队列的操作原则是先进先出 Ⅴ.栈采用顺序方式存储,而队列采用链接方式存储 A)仅Ⅰ和ⅣB)仅Ⅰ、Ⅱ和ⅣC)仅Ⅱ、Ⅲ和ⅤD)仅Ⅰ、Ⅳ和Ⅴ (10)下列关于树和二叉树的叙述中,不正确的是( C )。 Ⅰ.树和二叉树都属于树形结构 Ⅱ.树是结点的有限集合,这个集合不能为空集 Ⅲ.二叉树是结点的有限集合,这个集合不能为空集 Ⅳ.二叉树是树的特殊情况,即每个结点的子树个数都不超过2的情况 Ⅴ.每一棵树都能唯一地转换到它所对应的二叉树 A)仅Ⅰ和ⅡB)仅Ⅱ和ⅢC)仅Ⅲ和ⅣD)仅Ⅳ和Ⅴ (11)设散列表的地址空间为0到10,散列函数为h(k)=k mod 11,用线性探查法解决碰撞。现从空的散列表开始,依次插入关键码值36,95,14,27,68,82,则最后一个关键码插入后散列表的负载因子a约为( B )。 A)0.45 B)0.55 C)0.65 D)0.75 第(12)~(13)题基于以下的5阶B树结构。 (12)往该B树中插入关键码72后,该B树的叶结点数为(C)。 A)5 B)6 C)7 D)8

数据结构课后习题及答案

填空题(10 * 1’ = 10’) 一、概念题 .当对一个线性表经常进行的是插入和删除操作时,采用链式存储结构为宜。 .当对一个线性表经常进行的是存取操作,而很少进行插入和删除操作时,最好采用顺序存储结构。 .带头结点的单链表L中只有一个元素结点的条件是L->Next->Next==Null。 .循环队列的引入,目的是为了克服假溢出。 .长度为0的字符串称为空串。 .组成串的数据元素只能是字符。 .设T和P是两个给定的串,在T中寻找等于P的子串的过程称为模式匹配,又称P为模式。 .为了实现图的广度优先搜索,除一个标志数组标志已访问的图的结点外,还需要队列存放被访问的结点实现遍历。 .广义表的深度是广义表中括号的重数 .有向图G可拓扑排序的判别条件是有无回路。 .若要求一个稠密图的最小生成树,最好用Prim算法求解。 . 直接定址法法构造的哈希函数肯定不会发生冲突。 .排序算法所花费的时间,通常用在数据的比较和交换两大操作。 .通常从正确性﹑可读性﹑健壮性﹑时空效率等几个方面评价算法的(包括程序)的质量。 .对于给定的n元素,可以构造出的逻辑结构有集合关系﹑线性关系树形关系﹑图状关系四种。 .存储结构主要有顺序存储﹑链式存储﹑索引存储﹑散列存储四种。 .抽象数据类型的定义仅取决于它的一组逻辑特性,而与存储结构无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部使用。 .一个算法具有五大特性:有穷性﹑确定性﹑可行性,有零个或多个输入﹑有一个或多个输入。 .在双向链表结构中,若要求在p指针所指的结点之前插入指针为s所指的结点,则需执行下列语句:s->prior= p->prior; s->next= p; p->prior- next= s; p->prior= s;。 .在单链表中设置头结点的作用是不管单链表是否为空表,头结点的指针均不空,并使得对单链表的操作(如插入和删除)在各种情况下统一。 .队列是限制在表的一端进行插入和在另一端进行删除的线性表,其运算遵循先进先出原则。 .栈是限定尽在表位进行插入或删除操作的线性表。 .在链式队列中,判定只有一个结点的条件是(Q->rear==Q->front)&&(Q->rear!=NULL)。 .已知链队列的头尾指针分别是f和r,则将x入队的操作序列是node *p=(node *)malloc(node); p->next=x; p->next=NULL; if(r) {r->next=p; r=p;} else {r=p; f=p;}。 .循环队列的满与空的条件是(rear+1)%MAXSIZE==fornt和(front=-1&&rear+1==MAXSIZE)。 .串是一种特殊的线性表,其特殊性表现在数据元素都是由字符组成。 .字符串存储密度是串值所占存储位和实际分配位的比值,在字符串的链式存储结构中其结点大小是可变的。 .所谓稀疏矩阵指的是矩阵中非零元素远远小于元素总数,则称该矩阵为矩阵中非零元素远远小于元素总数,则称该矩阵为稀疏矩阵。 .一维数组的逻辑结构是线性结构,存储结构是顺序存储结构;对二维或多维数组,分别按行优先和列优先两种不同的存储方式。 .在有向图的邻接矩阵表示中,计算第i个顶点入度的方法是求邻接矩阵中第i列非0元素的个数。 网中,结点表示活动,边表示活动之间的优先关系,AOE网中,结点表示事件,边表示活动。 .按排序过程中依据不同原则对内部排序方法进行分类,主要有选择排序﹑交换排序﹑插入排序归并排序等4类。 .在堆排序、快速排序和归并排序中若只从排序结果的稳定性考虑,则应选择归并排序方法;若只从平均情况下排序最快考虑,则应选择快速排序方法;若只从最坏情况下排序最快且要节省类存考虑,则应选择堆排序方法。 .直接插入排序用监视哨的作用是存当前要的插入记录,可又省去查找插入位置时对是否出界的判断。 .设表中元素的初始状态是按键值递增的,则直接插入排序最省时间,快速排序最费时间。 .下列程序判断字符串s是否对称,对称则返回1,否则返回0;如?(“abba”)返回1,?(”abab”)返回0. Int f (char*s) { Int i=0,j=0; 求串长*/

数据结构习题与答案

第 1 章绪论 课后习题讲解 1. 填空 ⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 【解答】数据元素 ⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。 【解答】数据项,数据元素 【分析】数据结构指的是数据元素以及数据元素之间的关系。 ⑶从逻辑关系上讲,数据结构主要分为()、()、()和()。 【解答】集合,线性结构,树结构,图结构 ⑷数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。 【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系 ⑸算法具有五个特性,分别是()、()、()、()、()。 【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性 ⑹算法的描述方法通常有()、()、()和()四种,其中,()被称为算法语言。 【解答】自然语言,程序设计语言,流程图,伪代码,伪代码 ⑺在一般情况下,一个算法的时间复杂度是()的函数。 【解答】问题规模 ⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。 【解答】Ο(1),Ο(nlog2n) 【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。 2. 选择题 ⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。 A 线性结构 B 非线性结构 C 存储位置 D 指针 【解答】C,D 【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。

2008年9月全国计算机二级笔试C语言程序设计真题及答案

2008年9月全国计算机二级笔试C语言程序设计真题及答案

2008年9月全国计算机二级笔试C语言程序设计真题及答案 一、选择题((1)~(10)、(21)~(40)每题2 分,(11)~(20)每题 1 分,70 分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 (1)一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E 依次入栈,然后 再依次出栈,则元素出栈的顺序是()。 A)12345ABCDE B)EDCBA54321 C)ABCDE12345 D)54321EDCBA (2)下列叙述中正确的是()。 A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况 D)循环队列中元素的个数是由队头指针和队尾指针共同决定 (3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。 A)O(n) B)O(n2) C)O(log2n) D)O(n log2n) (4)下列叙述中正确的是()。 A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 C)顺序存储结构能存储有序表,链式存储结构不能存储有序表 D)链式存储结构比顺序存储结构节省存储空间 (5)数据流图中带有箭头的线段表示的是()。 A)控制流 B)事件驱动 C)模块调用 D)数据流

数据结构习题参考答案

第1章概论 1.数据、数据元素、数据结构、数据类型的含义分别是什么? 数据:对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并由计算机程序处理的符号的总称。 数据元素:数据的基本单位,在计算机程序中通常作为一个整体考虑。 数据结构:数据元素之间的关系+运算,是以数据为成员的结构,是带结构的数据元素的集合,数据元素之间存在着一种或多种特定的关系。 数据类型:数据类型是用来区分不同的数据;由于数据在存储时所需要的容量各不相同,不同的数据就必须要分配不同大小的内存空间来存储,所有就要将数据划分成不同的数据类型。数据类型包含取值范围和基本运算等概念。 2.什么是数据的逻辑结构?什么是数据的物理结构?数据的逻辑结构与物理结构的区别和联系是什么? 逻辑结构:数据的逻辑结构定义了数据结构中数据元素之间的相互逻辑关系。数据的逻辑结构包含下面两个方面的信息: ①数据元素的信息; ②各数据元素之间的关系。 物理结构:也叫储存结构,是指逻辑结构的存储表示,即数据的逻辑结构在计算机存储空间中的存放形式,包括结点的数据和结点间关系的存储表示。 数据的逻辑结构和存储结构是密不可分的,一个操作算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采与的存储结构。采用不同的存储结构,其数据处理的效率是不同的。因此,在进行数据处理时,针对不同问题,选择合理的逻辑结构和存储结构非常重要。 3.数据结构的主要操作包括哪些? 对于各种数据结构而言,他们在基本操作上是相似的,最常用的操作有: ●创建:建立一个数据结构; ●清除:清除一个数据结构; ●插入:在数据结构中增加新的结点; ●删除:把指定的结点从数据结构中删除; ●访问:对数据结构中的结点进行访问; ●更新:改变指定结点的值或改变指定的某些结点之间的关系; ●查找:在数据结构中查找满足一定条件的结点; ●排序:对数据结构中各个结点按指定数据项的值,以升序或降序重新排列。 4.什么是抽象数据类型?如何定义抽象数据类型? 抽象数据类型(Abstract Data Type 简称ADT)是指一个数学模型以及定义在此数学模型上的一组操作。ADT是与具体的物理存储无关的数据类型,因此,不论ADT的内部结构如何变化,只要其数据结构的特性不变,都不影响其外部使用。 对抽象数据类型的描述一般用(D,R,P)三元组表示,抽象数据类型的定义格式为: ADT<抽象数据类型名> { 数据对象D:<数据对象的定义> 数据关系R:<数据关系的定义> 基本操作P:<基本操作的定义>

数据结构习题及参考答案 .

习题1 一、单项选择题 1.数据结构是指()。 A.数据元素的组织形式 B.数据类型 C.数据存储结构 D.数据定义 2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。 A.存储结构 B.逻辑结构 C.链式存储结构 D.顺序存储结构 3.树形结构是数据元素之间存在一种()。 A.一对一关系 B.多对多关系 C.多对一关系 D.一对多关系 4.设语句x++的时间是单位时间,则以下语句的时间复杂度为()。 for(i=1; i<=n; i++) for(j=i; j<=n; j++) x++; A.O(1) B.O(2n) C.O(n) D.O(3n) 5.算法分析的目的是(1),算法分析的两个主要方面是(2)。 (1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 (2) A.空间复杂度和时间复杂度 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 6.计算机算法指的是(1),它具备输入,输出和(2)等五个特性。 (1) A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法 (2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性,稳定性和安全性 7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()。 A.低 B.高 C.相同 D.不好说 8.数据结构作为一门独立的课程出现是在()年。 A.1946 B.1953 C.1964 D.1968 9.数据结构只是研究数据的逻辑结构和物理结构,这种观点()。 A.正确 B.错误 C.前半句对,后半句错 D.前半句错,后半句对

数据结构复习题集与答案解析(12级)

一、选择题。(每小题2分,共40分) (1) 计算机识别.存储和加工处理的对象被统称为____A____。 A.数据 B.数据元素 C.数据结构 D.数据类型 (2) 数据结构通常是研究数据的____ A _____及它们之间的联系。 A.存储和逻辑结构 B.存储和抽象 C.理想和抽象 D.理想与逻辑 (3) 不是数据的逻辑结构是____ A ______。 A.散列结构 B.线性结构 C.树结构 D.图结构 (4) 数据结构被形式地定义为,其中D是____ B _____的有限集,R是____ C _____的有限集。 A.算法 B.数据元素 C.数据操作 D.逻辑结构 (5) 组成数据的基本单位是____ A ______。 A.数据项 B.数据类型 C.数据元素 D.数据变量 (6) 设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是____ A ______。 A.线性结构 B.树型结构 C.图型结构 D.集合 (7) 数据在计算机存储器表示时,物理地址与逻辑地址相同并且是连续的,称之为___ C ____。 A.存储结构 B.逻辑结构 C.顺序存储结构 D.链式存储结构 (8) 在数据结构的讨论中把数据结构从逻辑上分为___ A ____。 A.部结构与外部结构 B.静态结构与动态结构 C.线性结构与非线性结构 D.紧凑结构与非紧凑结构 (9) 对一个算法的评价,不包括如下____ B _____方面的容。 A.健壮性和可读性 B.并行性 C.正确性 D.时空复杂度 (10) 算法分析的两个方面是__ A ____。 A.空间复杂性和时间复杂性 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 (11) 线性表是具有n个___ C _____的有限序列(n≠0)。 A.表元素 B.字符 C.数据元素 D.数据项 (12) 线性表的存储结构是一种____ B ____的存储结构。 A.随机存取 B.顺序存取 C.索引存取 D.HASH存取

2010年9月全国计算机二级C++机试试题及答案

2010年9月全国计算机二级C++笔试试题:文字版 一、选择题(每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 (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)类之间共享属性和操作的机制 (7)层次型、网状型和关系型数据库划分原则是 A)记录长度 B)文件的大小 C)联系的复杂程度 D)数据之间的联系方式 (8)一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员、与实体计算机之间的联系是 A)一对一 B)一对多 C)多对多 D)多对一 (9)数据库设计中反映用户对数据要求的模式是 A)内模式 B)概念模式 C)外模式 D)设计模式 (10)有三个关系R、S和T如下: 则由关系R和S得到关系T的操作是 A)自然连接 B)交 C)投影 D)并 (11)下列关于函数参数的叙述中,正确的是 A)在函数原型中不必声明形参类型 B)函数的实参和形参共享内存空间

数据结构作业(附答案)

1.数据的最小单位是( A )。 (A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量 2.下面关于线性表的叙述错误的是(D)。 (A) 线性表采用顺序存储必须占用一片连续的存储空间 (B) 线性表采用链式存储不必占用一片连续的存储空间 (C) 线性表采用链式存储便于插入和删除操作的实现 (D) 线性表采用顺序存储便于插入和删除操作的实现 3.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为(C)。 (A) R-F (B) F-R (C) (R-F+M)%M (D) (F-R+M)%M 4.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为(A)。 (A) BADC(B)BCDA (C) CDAB (D) CBDA 5.设某棵二叉树中有2000个结点,则该二叉树的最小高度为(C)。 (A) 9 (B) 10 (C) 11(D) 12 6.下面程序的时间复杂为(B) for(i=1,s=0;i<=n;i++){t=1;for(j=1;j<=i;j++) t=t*j;s=s+t;} (A) O(n) (B) O(n2)(C) O(n3) (D) O(n4) 7.设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为(C)。 (A) q=p->next;p->data=q->data;p->next=q->next;free(q); (B) q=p->next;q->data=p->data;p->next=q->next;free(q); (C) q=p->next;p->next=q->next;free(q); (D) q=p->next;p->data=q->data;free(q); 8.设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为(C )。 (A)O(n) (B) O(nlog2n) (C) O(1)(D) O(n2) 9.设一棵二叉树的深度为k,则该二叉树中最多有(D )个结点。 (A) 2k-1 (B) 2k(C) 2k-1(D) 2k-1 10.设用链表作为栈的存储结构则退栈操作( B )。 (A) 必须判别栈是否为满(B) 必须判别栈是否为空 (C) 判别栈元素的类型(D) 对栈不作任何判别 11.函数substr(“DATASTRUCTURE”,5,9)的返回值为(A )。 (A) “STRUCTURE”(B) “DATA” (C) “ASTRUCTUR”(D) “DATASTRUCTURE” 12.设某二叉树中度数为0的结点数为N0,度数为1的结点数为N l,度数为2的结点数为N2,则下列等式成立的是( C)。 (A) N0=N1+1 (B) N0=N l+N2(C) N0=N2+1(D) N0=2N1+l 13.设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是(B )。 (A) 空或只有一个结点(B) 高度等于其结点数 (C) 任一结点无左孩子(D) 任一结点无右孩子 14. 深度为k的完全二叉树中最少有( B )个结点。 (A) 2k-1-1 (B) 2k-1(C) 2k-1+1(D) 2k-1

数据结构习题集答案解析_清华大学版

第1章 绪论 1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。 解:数据是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素是数据的基本单位,在计算机程序常作为一个整体进行考虑和处理。 数据对象是性质相同的数据元素的集合,是数据的一个子集。 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 存储结构是数据结构在计算机中的表示。 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。是对一般数据类型的扩展。 1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。 解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。一般数据类型由具体语言系统部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型。抽象数据类型通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。在定义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次更高,更能为其他用户提供良好的使用接口。 1.3 设有数据结构(D,R),其中 {}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r = 试按图论中图的画法惯例画出其逻辑结构图。 解: 1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。 解: ADT Complex{ 数据对象:D={r,i|r,i 为实数} 数据关系:R={} 基本操作: InitComplex(&C,re,im) 操作结果:构造一个复数C ,其实部和虚部分别为re 和im DestroyCmoplex(&C) 操作结果:销毁复数C Get(C,k,&e) 操作结果:用e 返回复数C 的第k 元的值 Put(&C,k,e) 操作结果:改变复数C 的第k 元的值为e IsAscending(C) 操作结果:如果复数C 的两个元素按升序排列,则返回1,否则返回0 IsDescending(C)

2008年同等学力申硕全国统考计算机科学与技术真题与答案

2008年同等学力申硕全国统考计算机科学与技术试卷 计算机科学与技术试卷 第一部分数学基础课程 第二部分专业知识课程 Ⅰ.计算机系统结构 Ⅱ.计算机网络 Ⅲ.软件工程 Ⅳ.人工智能原理 Ⅴ.计算机图形学 考生须知 1. 本试卷满分为100 分,包括数学基础课程和专业知识课程两部分。数学基础课程满分40分,每位考生必答;专业知识课程包括五门课程,每门课程满分30 分,考生须从中任选 2 门作答,多选者只按前选课程计分。 2. 请考生务必将本人准考证号最后两位数字填写在本页右上角方框内。 3. 考生一律用蓝色或黑色墨水笔在答题纸指定位置上按规定要求作答,未做在指定位置上的答案一律无效。 4. 监考员收卷时,考生须配合监考员验收,并请监考员在准考证上签字(作为考生交卷的凭据)。否则,若发生答卷遗失,责任由考生自负。 计算机科学与技术试卷第1 页共10 页 第一部分数学基础课程 (共40 分) 一、用逻辑符号形式化下列语句(本大题共2 小题,每小题2 分,共4 分) 1.每个人的指纹都不相同。 2.自然数不是奇数就是偶数,且奇数不能被2 整除。 二、填空题(本大题共4 小题,第1 小题每空1 分,第2、3、4 小题每空2 分,共10 分)1.设A、B 均为有穷集合,A 和B 的基数分别是m 和n(m >0, n >0)。 (1)当m 和n 满足时,存在从A 到B 的双射函数。 此时共可生成个不同的双射函数。 (2)当m 和n 满足时,存在从A 到B 的单射函数。 此时共可生成个不同的单射函数。 2.已知5 位老师和3 位学生围圆桌就座,如果要求学生两两不相邻,则有种就座方 案。

2000年9月全国计算机等级考试四级笔试试题

全国计算机等级考试四级笔试试题(2000年9月) (考试时间180分钟,满分100分) 一、选择题:(共70题,每题1分,满分70分。其中1-55题为中文题,56-70题为英文题)。 下列各题A)、B)、C)、D)四个选项中,只有一个是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1) 计算机控制器的核心是 A) 时序产生器B) 程序计数器C) 操作控制器D) 指令寄存器 (2) 若一个子程序起始地址为2K,调用指令CALL的内存地址为K+2,则执行CALL指令所 要执行指令的地址为 A) 2K B) 2K+1 C) 2K-1 D) K+3 (3) 2000年3月17日生效的标准GB18030-2000共收录汉字的数目为 A) 6763个B) 7360个C) 17000个D) 27000个 (4) 栈S最多能容纳4个元素。现在6个元素按A、B、C、D、E、F的顺序进栈,下列哪一 个序列不是可能的出栈序列? A) A、B、C、D、E、F B) A、F、E、D 、C、B C) C、B、E、D、A、F D) C、D、B、F、E、A (5) 由四个结点可以构造出多少种不同的二叉树? A) 4 B) 5 C) 14 D) 15 (6) 下图所示为一棵二叉排序树,其存储采取llink-rlink法。现要删除指针q所指的结点,下 面哪一个操作序列不能得到正确的结果? A) q^.info:=q^.llink^.info; q^.llink:=nil; B) q^.info:=q^.rlink^.llink^.info; q^.rlink^.llink:=nil; C) p^·llink:=q^·llink; p^.llink^.rlink:=q^.rlink; D) p^.llink:=q^.rllink; p^.llink^.rlink:=q^.llink;

数据结构习题及答案

第一章 1.在数据结构中,从逻辑上可以把数据结构分为(C ) A.动态结构和静态结构 B. 紧凑结构和非紧凑结构 C.线性结构和非线性结构 D. 内部结构和外部结构 ● 2.在数据结构中,与所使用的计算机无关的是( A ) A. 逻辑结构 B. 存储结构 C. 逻辑和存储结构 D. 物理结构 3.下面程序的时间复杂度为____O(mn)_______。 for (int i=1; i<=m; i++) for (int j=1; j<=n; j++ ) S+=i 第二章线性表 ●链表不具备的特点是(A) A 可以随机访问任一结点(顺序) B 插入删除不需要移动元素 C 不必事先估计空间 D 所需空间与其长度成正比 2. 不带头结点的单链表head为空的判定条件为(A ),带头结点的单链表head为空的判定条件为(B ) A head==null B head->next==null C head->next==head D head!=null ●3.在线性表的下列存储结构中,读取元素花费时间最少的是(D) A 单链表 B 双链表 C 循环链表 D 顺序表 ● 4.对于只在表的首、尾两端进行手稿操作的线性表,宜采用的存储结构为(C) A 顺序表 B 用头指针表示的单循环链表 C 用尾指针表示的单循环链表 D 单链表 ● 5.在一个具有n 个结点的有序单链表中插入一个新的结点,并保持链表元素仍然有序, 则操作的时间复杂度为( D ) A O(1) B O(log2n) C O(n2) D O(n) ● 6.在一个长度为n (n>1)的单链表上,设有头和尾两个指针,执行(B)操作与链表的长 度有关 A 删除单链表中第一个元素 B 删除单链表中最后一个元素 C 在第一个元素之前插入一个新元素 D 在最后一个元素之后插入一个新元素 ●7.与单链表相比,双向链表的优点之一是(D) A 插入删除操作更简单 B 可以进行随机访问 C 可以省略表头指针或表尾指针 D 顺序访问相邻结点更容易 ●8.若list是某带头结点的循环链表的头结点指针,则该链表最后那个链结点的指针域 (头结点的地址)中存放的是( B ) A list的地址 B list的内容 C list指的链结点的值 D 链表第一个链结点的地址 ●9.若list1和list2分别为一个单链表与一个双向链表的第一个结点的指针,则( B ) A list2比list1占用更多的存储单元 B list1与list2占用相同的存储单元 C list1和list2应该是相同类型的指针变量 D 双向链表比单链表占用更多的存储单元 10.链表中的每个链结点占用的存储空间不必连续,这句话正确吗? (不正确) 11. 某线性表采用顺序存储结构,元素长度为4,首地址为100,则下标为12的(第13个)元素的存储地址为148。V 100+4*12=148 11.在顺序表的(最后一个结点之后)插入一个新的数据元素不必移动任何元素。 12.若对线性表进行的操作主要不是插入删除,则该线性表宜采用(顺序)存储结构,若频繁地对线性表进行插入和删除操作,则该线性表宜采用( 链 )存储结构。

2008年全国高考真题试题解析

2008年全国高考真题试题解析 物理(理综天津卷) 14.下列说法正确的是 A.布朗运动是悬浮在液体中固体颗粒的分子无规则运动的反映 B.没有摩擦的理想热机可以把吸收的能量全部转化为机械能 C.知道某物质的摩尔质量和密度可求出阿伏加德罗常数 D.内能不同的物体,它们分子热运动的平均动能可能相同 14、D【解析】布朗运动是悬浮在液体中固体小颗粒的运动,他反映的是液体无规则的运动,所以A错误;没有摩擦的理想热机不经过做功是不可能把吸收的能量全部转化为机械能的B错误,摩尔质量必须和分子的质量结合才能求出阿伏加德罗常数C错;温度是分子平均动能的标志,只要温度相同分子的平均动能就相同,物体的内能是势能和动能的总和所以D正确 15.一个氡核衰变成钋核并放出一个粒子,其半衰期为3.8天。1g氡经过7.6天衰变掉氡的质量,以及。衰变成的过程放出的粒子是A.0.25g,a粒子 B.0.75g,a粒子 C.0.25g,β粒子 D.0.75g,β粒子 15、B【解析】经过了两个半衰期,1g的氡剩下了0.25g,衰变了0.75g,根据核反应方程的规律,在反应前后的质量数和荷电荷数不变可得出 是a粒子,所以B正确。 16.下列有关光现象的说法正确的是 A.在光的双缝干涉实验中,若仅将入射光由紫光改为红光,则条纹间距一定变大 B.以相同入射角从水中射向空气,紫光能发生全反射,红光也一定能发生全反射 C.紫光照射某金属时有电子向外发射,红光照射该金属时也一定有电子向外发射 D.拍摄玻璃橱窗内的物品时,往往在镜头前加装一个偏振片以增加透射光的强度 16、A【解析】根据干涉条纹的间距的公式△x=λ可知,由于紫光的波长比红光的波长短,所以改为红光后条纹间距一定增大,A正确;紫光的临界角比红光的临界角小,所以紫光发生全反射后红光不一定发生全反射,B错误;由于紫光的频率大于红光的频率,所以紫光的能量比红光

2010年9月全国计算机等级考试二级C语言真题及答案

2010 年9 月全国计算机等级考试二级笔试试卷 C 语言程序设计(附答案) (考试时间90 分钟,满分100 分) 一、选择题((1)—(10)、(21)—(40)每题2 分,(11)—(20)每题1 分,共70 分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项填涂在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是 A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构 D)上述三种说法都不对 (2)下列叙述中正确的是 A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D)上述三种说法都不对 (3)软件测试的目的是 A)评估软件可靠性 B)发现并改正程序中的错误 C)改正程序中的错误 D)发现程序中的错误 (4)下面描述中,不属于软件危机表现的是 A)软件过程不规范B)软件开发生产率低C)软件质量难以控制C)软件成本不断提高(5)软件生命周期是指 A)软件产品从提出、实现、使用维护到停止使用退役的过程 B)软件从需求分析、设计、实现到测试完成的过程 C)软件的开发过程 D)软件的运行维护过程 (6)面向对象方法中,继承是指 A)一组对象所具有的相似性质 B)一个对象具有另一个对象的性质 C)各对象之间的共同性质 D)类之间共享属性和操作的机制 (7)层次型、网状型和关系型数据库划分原则是 A)记录长度B)文件的大小B)联系的复杂程度D)数据之间的联系方式 (8)一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是 A)一对一B)一对多C)多对多D)多对一 (9)数据库设计中反映用户对数据要求的模式是 A)内模式B)概念模式C)外模式D)设计模式

相关文档