数据结构考试试题二及参考答案

课程名称: 数据结构 考试时间:

姓名: 班级: 学号:

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

( )1、 链表适用于_______查找

A) 顺序 B) 二分法 C) 顺序,也能二分法 D) 随机

( )2、试利用Dijkstra 算法求图中从顶点a 到其他各顶点间的最短路径

A) a,c,f,e,d,g,b

B) a,c,e,f,d,g,b

C) a,c,f,d,e,g,b

D) a,c,f,d,e,b,g

(有问题)

( )3、栈中元素的进出原则是

A )先进先出

B )后进先出

C )栈空则进

D )栈满则出 ( )4、已知图的邻接矩阵如下,根据算法思想,则从顶点0出发按广度优

先遍历的结点序列是_______。(有问题)

A) 0 2 4 3 6 5 1 B)0 1 2 3 4 5 6 C) 0 4 2 3 1 5 6 D) 0 1 3 4 2 5 6

( )5、用5个权值{3, 2, 4, 5, 1}构造的哈夫曼(Huffman )树的带权路径长度是。

A )32

B )33

C )34

D )15

( )6、给定二叉树的两种遍历序列,分别是:先序遍历序列:D ,A ,C ,E ,B ,H ,

F ,

G ,I ; 中序遍历序列:D ,C ,B ,E ,

H ,A ,G ,

I ,F ,其后序遍历序 列为:

A) BHECGIFAD B) BHECIGADF

C) BHECIGFAD D) CHEBIGADF

( )7、有8个结点的无向图最多有 条边。

A )14

B )28

C )56

D )112

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡01000111011000

01011010110011

001000110010011011110

()8、折半查找有序表(4,6,10,12,20,30,50,70,88,100)。若查找

表中元素58,则它将依次与表中比较大小,查找结果是失败。

A)20,70,30,50 B)30,88,70,50

C)20,50 D)30,88,50

()9、一组记录的排序码为(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

()10、排序序列中挑选元素,并将其依次插入已排序序列(初始时为空)的一端的方法,称为

A)希尔排序B)归并排序C)插入排序D)选择排序

二、填空题(每空2分,共20分)

1、在树形结构中,树根结点没有结点,其余每个结点有且只有个前驱结点;叶子结点没有结点,其余每个结点的后续结点数可以有。

2、是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。

3、设有4个数据元素a1、a2、a3和a4,对他们分别进行栈操作或队操作。在进栈或进队操作时,按a1、a2、a3、a4次序每次进入一个元素。假设栈或队的初始状态都是空。现要进行的栈操作是进栈两次,出栈一次,再进栈两次,出栈一次;这时,第一次出栈得到的元素是,第二次出栈得到的元素是是;类似地,考虑对这四个数据元素进行的队操作是进队两次,出队一次,再进队两次,出队一次;这时,第一次出队得到的元素是,第二次出队得到的元素是。经操作后,最后在栈中或队中的元素还有个。

三、算法阅读理解题(每题10分,共30分)

1、写出下列程序段的输出结果(栈的元素类型为char)。

void main( )

{

Stack S;// Stack表示栈类型

Char x,y;

InitStack(S);//初始化栈

X=’c’;

y=’k’;

Push(S,x);// Push表示入栈操作

Push(S,’a’);

Push(S,y);

Pop(S,x); // Pop表示出栈操作

Push(S,’t’);

Push(S,x);

Pop(S,x); Push(S,’s’);

while(!StackEmpty(S))

{

Pop(S,y);printf(y);

};

Printf(x);

}

2、设如图一所示的二叉树BTREE

的存储结构为二叉链表,root为根指针,结点结构为:(lchild,data,rchild)。其中lchild,rchild分别为指向左右孩子的指针,data为字符型,root为根指针,对二叉树BTREE,执行算法traversal(root),试分析算法的作用并指出算法执行后的输出结果。

图一:二叉树BTREE

A

B D

C F G

E

3、下面程序实现了对输入数据进行直接插入排序的过程,并输出排序后的结果

请在____________处给出所缺失的内容。

typedef struct

{

Int key;

int other_data;

}RecordType;

void InsSort(RecordType r[], int length)

/* 对记录数组r做直接插入排序,length为数组中待排序记录的数目*/ {

int i,j;

for (i=2; i<=length; i++)

{

(1); /*设置哨兵*/

j=i-1;

(2);/*寻找插入位置*/

{

r[j+1]= r[j];

j=j-1;

}

(3); /*将待插入记录插入到已排序的序列中*/ }

}

void main()

{

int i,j;

RecordType r[20];

int len;

printf("请输入待排序记录的长度:");

scanf("%d",&len);

for(i=1;i<=len;i++)

{

printf("请输入第%d个记录元素:",i);

scanf("%d",&j);

(4); /*将输入的数据保存到结构体中的数据域中*/ }

for(i=1;i<=len;i++)

printf("%d ",r[i].key);

printf("\n");

InsSort(r,len);

for(i=1;i<=len;i++)

printf("%d ", (5)); /*输出排序后的数据*/

printf("\n");

}

四、算法设计题(每题15分,共30分)

1、下面给出了单链表的结构体类型定义,请编写算法,由键盘输入一组数据,用尾插法建立一个单链表,并输出链表中的数据。编写算法时,给出算法的功能说明和一定数量的注释。

typedef char ElemType;

typedef struct Node /*结点类型定义*/

{

ElemType data;

struct Node * next;

}Node, *LinkList; /* LinkList为结构指针类型*/

2、编写冒泡排序算法,实现对键盘输入的一组数据进行排序并输出结果编写算法时,

给出算法的功能说明和一定数量的注释。

参考答案

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

1、A ;

2、B?;

3、B;

4、B;

5、B;

6、C;

7、B;

8、A;

9、C;10、D。

二、填空题(每空2分,共20分)

1、前驱,1,后继,任意多个;

2、队列;

3、a2,a4,a1,a2,2;

三、算法阅读理解题(每题10,共30分)

1、答:输出为“stack”。

2、答:该算法实现对二叉树的中序遍历,

执行后得到中序序列:ABCCEEBADFFDGG

3、1)r[0]=r[i]

2)while (r[0].key< r[j].key )

3)r[j+1]=r[0];

4)r[i].key = j。

5)r[i].key

三、算法设计题(每题15分,共30分)

1、

typedef char ElemType;

typedef struct Node /*结点类型定义*/

{

ElemType data;

struct Node * next;

}Node, *LinkList; /* LinkList为结构指针类型*/

void init_linklist(LinkList *l)/*对单链表进行初始化*/

{

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

(*l)->next=NULL;

}

void CreateFromTail(LinkList L)

{

Node *r, *s;

char c;

int flag =1; /*设置一个标志,初值为1,当输入"$"时,flag为0,建表结束*/

r=L; /*r指针动态指向链表的当前表尾,以便于做尾插入,其初值指向头结点*/ while(flag) /*循环输入表中元素值,将建立新结点s插入表尾*/

{

c=getchar();

if(c!='$')

{

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

s->data=c;

r->next=s;

r=s;

}

else

{

flag=0;

r->next=NULL; /*将最后一个结点的next链域置为空,表示链表的结束*/ }

}

}

void main()

{

LinkList l;

Node *p;

init_linklist(&l);

printf("用尾插法建立单链表,请输入链表数据,以$结束!\n");

CreateFromTail(l);

p = l->next;

while(p!=NULL)

{

printf("%c\n",p->data);

p=p->next;

}

}

2、

1)冒泡排序程序

#include

#include

#define TRUE 1

#define FALSE 0

typedef int KeyType;

typedef int OtherType;

typedef struct

{

KeyType key;

OtherType other_data;

}RecordType;

void BubbleSort(RecordType r[], int length )

/*对记录数组r做冒泡排序,length为数组的长度*/ {

int n,i,j;

int change;

RecordType x;

n=length;

change=TRUE;

for ( i=1 ; i<= n-1 && change ;++i )

{

change=FALSE;

for ( j=1 ; j<= n-i ; ++j)

if (r[j].key > r[j+1].key )

{

x= r[j];

r[j]= r[j+1];

r[j+1]= x;

change=TRUE;

}

}

} /* BubbleSort */

void main()

{

int i,j;

RecordType r[20];

int len;

printf("请输入待排序记录的长度:");

scanf("%d",&len);

for(i=1;i<=len;i++)

{

printf("请输入第%d个记录元素:",i);

scanf("%d",&j);

r[i].key = j;

}

for(i=1;i<=len;i++)

printf("%d ",r[i].key);

printf("\n");

BubbleSort(r,len);

for(i=1;i<=len;i++)

printf("%d ",r[i].key);

printf("\n");

}

计算机专业基础综合数据结构(排序)模拟试卷2(题后含答案及解析)

计算机专业基础综合数据结构(排序)模拟试卷2(题后含答案及解 析) 题型有:1. 单项选择题 2. 综合应用题 单项选择题1-40小题,每小题2分,共80分。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。 1.采用简单选择排序,比较次数与移动次数分别为( )。 A.O(n),O(log2n) B.O(log2n),O(n2) C.O(n2),O(n) D.O(nlog2n),O(n) 正确答案:C 解析:简单选择排序的关键字比较次数KCN与对象的初始排列无关。第i 趟选择具有最小关键字对象所需的比较次数总是n—i—1次(此处假定整个待排序对象序列有n个对象)。因此,总的关键字比较次数为:最坏情况是每一趟都要进行交换,总的对象移动次数为RMN=3(n一1)。知识模块:数据结构 2.就排序算法所用的辅助空间而言,堆排序、快速排序、归并排序的关系是( )。 A.堆排序<快速排序<归并排序 B.堆排序<归并排序<快速排序 C.堆排序>归并排序>快速排序 D.堆排序>快速排序>归并排序 正确答案:A 解析:此题考查的知识点为排序的空间复杂性。堆排序辅助空间为O(1),快速排序为O(log2n),归并排序为O(n)。应选A。知识模块:数据结构 3.一组记录的关键码为(25,48,16,35,79,82,23,40,36,72),其中,含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为( )。 A.16,25,35,48,23,40,79,82,36,72 B.16,25,35,48,79,82,23,36,40,72 C.16,25,48,35,79,82,23,36,40,72 D.16,25,35,48,79,23,36,40,72,82 正确答案:A 解析:对于(25,48,16,35,79,82,23,40,36,72),(25,48)和(16,35)归并的结果为(16,25,35,48)。(79,82)和(23,40)归并后的结果为(23,40,

数据结构第2章习题及答案

7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用()存储方式最节省运算时间。【北京理工大学 2000 一、1(2分)】 A.单链表 B.双链表 C.单循环链表 D.带头结点的双循环链表 8. 静态链表中指针表示的是(). 【北京理工大学 2001 六、2(2分)】 A.内存地址 B.数组下标 C.下一元素地址 D.左、右孩子地址 9. 链表不具有的特点是()【福州大学 1998 一、8 (2分)】 A.插入、删除不需要移动元素 B.可随机访问任一元素 C.不必事先估计存储空间 D.所需空间与线性长度成正比 10. 下面的叙述不正确的是()【南京理工大学 1996 一、10(2分)】 A.线性表在链式存储时,查找第i个元素的时间同i的值成正比 B. 线性表在链式存储时,查找第i个元素的时间同i的值无关 C. 线性表在顺序存储时,查找第i个元素的时间同i 的值成正比 D. 线性表在顺序存储时,查找第i个元素的时间同i的值无关 11. 线性表的表元存储方式有((1))和链接两种。试指出下列各表中使用的是何种存储方式:表1是((2))存储方式;表2是((3))存储方式;表3是((4))存储方式;表4是((5))存储方式。表左的s指向起始表元。 供选择的答案: A.连续 B.单向链接 C.双向链接 D.不连接 E.循环链接 F.树状 G.网状 H.随机 I.顺序 J.顺序循环 【上海海运学院 1995 二、1(5分)】 12.(1) 静态链表既有顺序存储的优点,又有动态链表的优点。所以,它存取表中第i个元素的时间与i无关。 (2) 静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。

数据结构试题及答案(2)

数据结构试题 一、单选题(每题 2 分,共20分) 1.1. 对一个算法的评价,不包括如下( B )方面的内容。 A.健壮性和可读性B.并行性 C.正确性 D.时空复杂度 2.2. 在带有头结点的单链表HL中,要向表头插入一个由指针p 指向的结点,则执行( A )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; C. p->next=HL; p=HL; D. HL=p; p->next=HL; 3.3. 对线性表,在下列哪种情况下应当采用链表表示?( B ) A.经常需要随机地存取元素 B.经常需要进行插入和删除操作 C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变 4.4. 一个栈的输入序列为 1 2 3,则下列序列中不可能是栈的输 出序列的是( C ) A. 2 3 1 B. 3 2 1 C. 3 1 2 D. 1 2 3 5.5. AOV网是一种( D )。 A.有向图 B.无向图 C.无向无环图D.有向无环图 6.6. 采用开放定址法处理散列表的冲突时,其平均查找长度 ( B )。 A.低于链接法处理冲突 B. 高于链接法处理冲突 C.与链接法处理冲突相同 D.高于二分查找 7.7. 若需要利用形参直接访问实参时,应将形参变量说明为( D ) 参数。 A.值 B.函数 C.指针 D.引用 8.8. 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的 结点都具有相同的( A )。 A.行号B.列号 C.元素值 D.非零元素个数 9.9. 快速排序在最坏情况下的时间复杂度为( D )。 A.O(log 2n) B.O(nlog 2 n) C.O(n) D.O(n2) 10.10. 从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。 A. O(n) B. O(1) C. O(log 2 n) D. O(n2) 二、运算题(每题 6 分,共24分) 1. 1. 数据结构是指数据及其相互之间的_对应关系(联系)。当结点之间存在M 对N(M:N)的联系时,称这种结构为图(或图结构)。 2. 2.队列的插入操作是在队列的__队尾___进行,删除操作是在队列的_对头_ 进行。 3. 3. 当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,

数据结构模拟试题二及答案

数据结构模拟试题二 一.判断题(每小题1 分,共15分) 1.构成数据的最小单位是数据项。 2.空线性表的一个特性是线性表中各结点尚未赋值。 3.非循环单向链表一定要有表头指针。 4.顺序栈的栈顶指针是一个指针类型的变量。 5.在表示树的双亲数组中,找结点的双亲要比找结点的孩子容易。 6.哈夫曼树中不存在度为1的结点。 7.在图中,与V i相邻的顶点其序号一定是i+1或i-1。 8.如果是不连通的无向图,则在相应的邻接表中一定有空链表。 9.矩阵的行数和列数可以不相等。 10.广义表的深度与广义表中含有多少个子表元素有关。 11.折半查找可以在有序的双向链表上进行。 12.散列查找过程中,关键字的比较次数和散列表中关键字的个数直接相关。 13.对n个元素执行简单选择排序,排序码的比较次数总是n(n-1)/2次。 14.物理记录的大小与逻辑记录的大小成正比。 15.对索引文件,索引表是建立在内存的,数据区是建立在外存的。 二.填空题(每空1分,共15分) 1.在程序中,描述顺序表的存储空间一般用________变量。 2.若用Q[0]~Q[100]作为循环顺序队列的存储空间,用“队首指针f的值等于队尾指针r 的值”作为队空的标志,则创建一个空队列所要执行的操作是___________。 3.栈和顺序栈的区别仅在于________。 4.n个结点的二叉树最大高度是___,最小高度是___。 5.树的存储方法主要有_____、_____和_____三种。 6.n个顶点的强连通图中至少有___条边。 7.10行20列矩阵若用列优先顺序表来表示,则矩阵中第7行第6列元素是顺序表中第___ 个元素。 8.在各元素查找概率相等的情况下,在含有14个元素的平衡二叉排序树上查找其中一个 元素,元素间的平均比较次数至少是_____次,至多是______次。 9.对n个元素执行快速排序,在进行第一次分组时,元素的移动次数至多是____次,至少 是___次。 10.在B-树中,若某结点有i个孩子,则该结点中一定有___个关键字。 三.选择题(每题2分,共30分) 1.数据结构的研究内容不涉及________。 A.算法用什么语言来描述B.数据如何存储 C.数据的运算如何实现D.数据如何组织 2. 若H1是动态单向链表的表头指针,H2是动态双向链表的表头指针,则________。A.H1和H2占用同样多的内存空间B.H1和H2是同类型的变量 C.H2要比H1占用更多的内存空间 D.双向链表要比单向链表占用更多的内存空间 3. 对于K个带头结点的静态单向链表来说,若各结点类型相同,则K个链表一般可共用_________。 A.同一个数组B.某些数组元素C.同一个表头结点D同一个表头指针 4.最不适合用作链接栈的链表是_____________。 A.只有表头指针没有表尾指针的循环双向链表 B.只有表尾指针没有表头指针的循环双向链表 C.只有表尾指针没有表头指针的循环单向链表 D.只有表头指针没有表尾指针的循环单向链表 5.栈和队列的共同点在于_____________。 A.都对存储方法作了限制B.都是只能进行插入、删除运算C.都对插入、删除的位

数据结构试题2(含答案)

期末样卷参考答案 一.是非题(每题2分共20分) 1. 线性表的链式存储结构优于顺序存储结构。F 2. 栈和队列也是线性表。如果需要,可对它们中的任一元素进行操作。F 3.字符串是数据对象特定的线性表。T 4.在单链表P指针所指结点之后插入S结点的操作是:P->next= S ; S-> next = P->next; F 5.一个无向图的连通分量是其极大的连通子图。T 6.邻接表可以表示有向图,也可以表示无向图。T 7.假设B是一棵树,B′是对应的二叉树。则B的后根遍历相当于B′的中序遍历。 T 8.通常,二叉树的第i层上有2i-1个结点。F 9.对于一棵m阶的B-树,树中每个结点至多有m 个关键字。除根之外的所有非终端 结点至少有┌m/2┐个关键字。F 10.对于任何待排序序列来说,快速排序均快于起泡排序。F 二.选择题(每题2分共28分) 1.在下列排序方法中,(c)方法平均时间复杂度为0(nlogn),最坏情况下时间复杂度为0(n2);(d)方法所有情况下时间复杂度均为0(nlogn)。 a. 插入排序 b. 希尔排序 c. 快速排序 d. 堆排序 2. 在有n个结点的二叉树的二叉链表表示中,空指针数为(b)。 a.不定 b.n+1 c.n d.n-1 3. 下列二叉树中,(a)可用于实现符号不等长高效编码。 a.最优二叉树 b.次优查找树 c.二叉平衡树 •• d.二叉排序树 4. 下列查找方法中,(a)适用于查找有序单链表。 a.顺序查找 b.二分查找 c.分块查找 d.哈希查找 5. 在顺序表查找中,为避免查找过程中每一步都检测整个表是否查找完毕,可采用 (a)方法。 a.设置监视哨 b.链表存贮 c.二分查找 d.快速查找 6. 在下列数据结构中,(c)具有先进先出特性,(b)具有先进后出特性。 a.线性表 b.栈 c.队列 d.广义表 7.具有m个结点的二叉排序树,其最大深度为(f),最小深度为(b)。 a. log 2 m b. └ log2 m ┘ +1 c. m/2 d .┌ m/2 ┐ -1 e. ┌ m/2 ┐ f. m 8.已知一组待排序的记录关键字初始排列如下:56,34,58,26,79,52,64,37,28,84,57。 下列选择中(c)是快速排序一趟排序的结果。 (b)是希尔排序(初始步长为4)一趟排序的结果。 (d)是基数排序一趟排序的结果。 (a)是初始堆(大堆顶)。 a)84,79,64,37,57,52,58,26,28,34,56。 b)28,34,57,26,56,52,58,37,79,84,64。 c)28,34,37,26,52,56,64,79,58,84,57。 d)52,34,64,84,56,26,37,57,58,28,79。

数据结构试卷(二)及答案

数据结构试卷(二) 一、选择题(24分) 1.下面关于线性表的叙述错误的是()。 (A) 线性表采用顺序存储必须占用一片连续的存储空间 (B) 线性表采用链式存储不必占用一片连续的存储空间 (C) 线性表采用链式存储便于插入和删除操作的实现 (D) 线性表采用顺序存储便于插入和删除操作的实现 2.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有()个空指针域。 (A) 2m-1 (B) 2m (C) 2m+1 (D) 4m 3.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为()。 (A) R-F (B) F-R (C) (R-F+M)%M (D) (F-R+M)%M 4.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为()。 (A) BADC (B) BCDA (C) CDAB (D) CBDA 5.设某完全无向图中有n个顶点,则该完全无向图中有()条边。 (A) n(n-1)/2 (B) n(n-1) (C) n2(D) n2-1 6.设某棵二叉树中有2000个结点,则该二叉树的最小高度为()。 (A) 9 (B) 10 (C) 11 (D) 12 7.设某有向图中有n个顶点,则该有向图对应的邻接表中有()个表头结点。 (A) n-1 (B) n (C) n+1 (D) 2n-1 8.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为()。 (A) 2,3,5,8,6 (B) 3,2,5,8,6 (C) 3,2,5,6,8 (D) 2,3,6,5,8 二、填空题(24分) 1.为了能有效地应用HASH查找技术,必须解决的两个问题是____________________和 __________________________。 2.下面程序段的功能实现数据x进栈,要求在下划线处填上正确的语句。 typedef struct {int s[100]; int top;} sqstack; void push(sqstack &stack,int x) { if (stack.top==m-1) printf(“overflow”); else {____________________;_________________;} } 3.中序遍历二叉排序树所得到的序列是___________序列(填有序或无序)。 4.快速排序的最坏时间复杂度为___________,平均时间复杂度为__________。

数据结构试题及答案修2

试卷一 一、单选题(每题 2 分,共20分) 1. 对一个算法的评价,不包括如下()方面的内容。 A.健壮性和可读性B.并行性C.正确性D.时空复杂度 2. 在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; C. p->next=HL; p=HL; D. HL=p; p->next=HL; 3. 对线性表,在下列哪种情况下应当采用链表表示?( ) A.经常需要随机地存取元素 B.经常需要进行插入和删除操作 C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变 4. 一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( ) A. 2 3 1 B. 3 2 1 C. 3 1 2 D. 1 2 3 5. AOV网是一种()。 A.有向图B.无向图C.无向无环图D.有向无环图 7. 若需要利用形参直接访问实参时,应将形参变量说明为()参数。 A.值B.函数C.指针D.引用 8. 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的()。 A.行号B.列号C.元素值D.非零元素个数 二、填空题(每空1分,共28分) 1. 数据结构是指数据及其相互之间的______________。当结点之间存在M对N(M:N)的联系时,称这种结构为_____________________。 2. 队列的插入操作是在队列的___尾______进行,删除操作是在队列的____首______进行。 3. 当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则表示栈满的条件是___top==0_____________。 4. 对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度为_________,在表尾插入元素的时间复杂度为____________。 7. 二叉树是指度为2的____________________树。一棵结点数为N的二叉树,其所有结点的度的总和是_____________。 8. 对一棵二叉搜索树进行中序遍历时,得到的结点序列是一个______________。对一棵由算术表达式组成的二叉语法树进行后序遍历得到的结点序列是该算术表达式的__________________。 9. 对于一棵具有n个结点的二叉树,用二叉链表存储时,其指针总数为_____________个,其中_______________个用于指向孩子,_________________个指针是空闲的。 10. 若对一棵完全二叉树从0开始进行结点的编号,并按此编号把它顺序存储到一维数组A中,即编号为0的结点存储到A[0]中。其余类推,则A[ i ]元素的左孩子元素为________,右孩子元素为

数据结构考试试题二及参考答案

课程名称: 数据结构 考试时间: 姓名: 班级: 学号: 一、选择题(每题2分,共20分) ( )1、 链表适用于_______查找 A) 顺序 B) 二分法 C) 顺序,也能二分法 D) 随机 ( )2、试利用Dijkstra 算法求图中从顶点a 到其他各顶点间的最短路径 A) a,c,f,e,d,g,b B) a,c,e,f,d,g,b C) a,c,f,d,e,g,b D) a,c,f,d,e,b,g (有问题) ( )3、栈中元素的进出原则是 A )先进先出 B )后进先出 C )栈空则进 D )栈满则出 ( )4、已知图的邻接矩阵如下,根据算法思想,则从顶点0出发按广度优 先遍历的结点序列是_______。(有问题) A) 0 2 4 3 6 5 1 B)0 1 2 3 4 5 6 C) 0 4 2 3 1 5 6 D) 0 1 3 4 2 5 6 ( )5、用5个权值{3, 2, 4, 5, 1}构造的哈夫曼(Huffman )树的带权路径长度是。 A )32 B )33 C )34 D )15 ( )6、给定二叉树的两种遍历序列,分别是:先序遍历序列:D ,A ,C ,E ,B ,H , F , G ,I ; 中序遍历序列:D ,C ,B ,E , H ,A ,G , I ,F ,其后序遍历序 列为: A) BHECGIFAD B) BHECIGADF C) BHECIGFAD D) CHEBIGADF ( )7、有8个结点的无向图最多有 条边。 A )14 B )28 C )56 D )112 ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦ ⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡01000111011000 01011010110011 001000110010011011110

《数据结构》模拟试卷二及答案

模拟试卷二 一、单选题(每题 2 分,共20分) 1.在一个带有附加表头结点的单链表HL中,若要向表头插入一个由指针p指向的结 点,则执行(B )。 A. HL=p; p->next=HL; B. p->next=HL->next; HL->next=p; C. p->next=HL; p=HL; D. p->next=HL; HL=p; 2.若顺序存储的循环队列的QueueMaxSize=n,则该队列最多可存储(A B )个元素. A. n B.n-1 C. n+1 D.不确定 3.下述哪一条是顺序存储方式的优点?(C A ) A.存储密度大 B.插入和删除运算方便 C. 获取符合某种条件的元素方便 D.查找运算速度快 4.设有一个二维数组A[m][n],假设A[0][0]存放位置在600(10),A[3][3]存放位置在 678(10),每个元素占一个空间,问A[2][3](10)存放在什么位置?(脚注(10)表示用10进制表示,m>3) BD A.658 B.648 C.633 D.653 3m+3=78 m=25 5.下列关于二叉树遍历的叙述中,正确的是( DA ) 。 A. 若一个树叶是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一个结点 B.若一个点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一个结点 C.若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点 D.若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历最后一个结点 6.k层二叉树的结点总数最多为( A ). A.2k-1 B.2K+1 C.2K-1 D. 2k-1 7.对线性表进行二分法查找,其前提条件是( ). A.线性表以链接方式存储,并且按关键码值排好序 B.线性表以顺序方式存储,并且按关键码值的检索频率排好序 C.线性表以顺序方式存储,并且按关键码值排好序 D.线性表以链接方式存储,并且按关键码值的检索频率排好序 8.对n个记录进行堆排序,所需要的辅助存储空间为 A. O(1og2n) B. O(n) C. O(1) D. O(n2) 9.对于线性表(7,34,77,25,64,49,20,14)进行散列存储时,若选用H(K) =K %7作为散列函数,则散列地址为0的元素有()个, A.1 B.2 C.3 D.4 10.下列关于数据结构的叙述中,正确的是( D ). A.数组是不同类型值的集合 B.递归算法的程序结构比迭代算法的程序结构更为精炼 C.树是一种线性结构 D.用一维数组存储一棵完全二叉树是有效的存储方法 二、填空题(每空1分,共26分) 1.数据的逻辑结构被分为_________、________、__________和___________四种。 2.一个算法的时间复杂度为(3n3+2000n log2n+90)/n2,其数量级表示为________。 3.对于一个长度为n的单链存储的队列,在表头插入元素的时间复杂度为_________,在 表尾插入元素的时间复杂度为____________。 4.假定一棵树的广义表表示为A(D(E,G),H(I,J)),则树中所含的结点数为__________ 个,树的深度为___________,树的度为_________。 5.后缀算式79 2 30 + - 4 2 / *的值为__________。中缀算式(3+X*Y)-2Y/3对

数据结构考试题库(含参考答案) (2)

第1章绪论 一、选择题 1. 算法的计算量的大小称为计算的()。【北京邮电大学2000 二、3 (20/8分)】 A.效率 B. 复杂性 C. 现实性 D. 难度 2. 算法的时间复杂度取决于()【中科院计算所1998 二、1 (2分)】 A.问题的规模 B. 待处理数据的初态 C. A和B 3.计算机算法指的是(1),它必须具备(2)这三个特性。 (1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法 (2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 【南京理工大学1999 一、1(2分)【武汉交通科技大学1996 一、1(4分)】4.一个算法应该是()。【中山大学1998 二、1(2分)】 A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A和C. 5. 下面关于算法说法错误的是()【南京理工大学2000 一、1(1.5分)】 A.算法最终必须由计算机程序实现 B. 为解决某问题的算法同为该问题编写的程序含义是相同的 C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误的 6. 下面说法错误的是()【南京理工大学2000 一、2 (1.5分)】 (1)算法原地工作的含义是指不需要任何额外的辅助空间 (2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界 (4)同一个算法,实现语言的级别越高,执行效率就越低 A.(1) B.(1),(2) C.(1),(4) D.(3) 7.从逻辑上可以把数据结构分为()两大类。【武汉交通科技大学1996 一、4(2分)】 A.动态结构、静态结构B.顺序结构、链式结构 C.线性结构、非线性结构D.初等结构、构造型结构 8.以下与数据的存储结构无关的术语是()。【北方交通大学2000 二、1(2分)】 A.循环队列 B. 链表 C. 哈希表 D. 栈 9.以下数据结构中,哪一个是线性结构()?【北方交通大学2001 一、1(2分)】 A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串

(完整word版)数据结构试题试卷二含答案

模拟试题二 模拟试题二 一、选择题(28分) 1.设一数列的顺序为l,2,3,4,5,通过栈结构不可能排成的顺序数列为( )。 A)3,2,5,4,l B)1,5,4,2,3 C)2,4,3,5,l D)4,5,3,2,l 2。二叉树的第3层最少有()个结点。 A)0 B)1 C)2 D)3 3。—个n个顶点的连通无向图,其边的个数至少为( )。 A) n-l B)n C)n+l D)nlogn 4。下列排序方法中,( )的比较次数与记录的初始排列状态无关。 A)直接插入排序 B)起泡排序 C)快速排序 D)直接选择排序 5.-棵哈夫曼树总共有II个结点,则叶子结点有( )个。 A)5 B)6 C)7 D)9 6.已知某算法的执行时间为(n+n2)+log2(n+2),n为问题规模,则该算法的时间复杂度是( )。 A)O(n)B)O(n2) C)O(log2n)D)O(nlog2n) 7。如果一棵树有10个叶子结点,则该树总共至少有( )个结点。 A)lO B)11 C)19 D) 21 8。—个100×100的三角矩阵a采用行优先压缩存储后,如果首元素a[0][0]是第一个元素,那么a[4] [2]是第( )个元素。 A)13 B) 401 C) 402 D)403 9.有一棵二叉树如题图1,该树是()。 A)二叉平衡树B)二叉排序树 C)堆的形状D)以上都不是 10。对于含有n个顶点e条边的无向连通图,利用Prim算法生成最小代价生成树,其时间复杂度为(),利用Kruska算法的时间复杂度为(). A)O(log2n) B)0(n2) C)O(ne) D)O(elog2ne) 11.具有n个顶点的完全有向图的边数为( ). A)n(n—l)/2 B)n(n-l) C) n2 D)n2—1 12。设有100个元素,用折半查找时,最大比较次数为(),最小比较次数为()。 A)25 B)7 C) 10 D)l

数据结构第二章参考答案

数据结构第二章参考答案 习题2 1. 填空题 〔1〕在一个单链表中,每个结点包含data和next两个域,q所指结点是p 所指结点的直接前驱,假设在q和p之间插入s所指结点,那么执行 〔___________〕和〔___________〕操作。 答案:q->next = s; s->next = p; 或 s->next=q->next; q->next = s; 〔2〕表长为n的顺序表,当在任何位置上插入或删除一个元素的概率相等时,插入一个元素所需移动元素的平均个数为〔___________〕,删除一个元素需要移动元素的平均个数为〔___________〕。答案:n/2 (n-1)/2 〔3〕表长为0的线性表称为〔___________〕。答案:空表 〔4〕动态内存管理是操作系统的根本功能之一,其作用是响应用户程序对内存的〔___________〕和〔___________〕请求。答案:申请释放 〔5〕顺序表多采用〔___________〕实现的,是一种随机存取结构,对表中任意结点存取操作的时间复杂度为〔___________〕。而查找链表中的结节,需要从头指针起顺着链扫描才能得到,平均时间复杂度为〔___________〕。因此,假设线性表的操作主要是进行查找,很少进行插入或删除操作时,采用 〔___________〕表比拟适宜。答案:数组 O(1) O(n) 顺序 〔6〕在链表某个位置上进行插入和删除操作,只需要修改〔___________〕即可,而无须移动大量元素,操作的时间复杂度为〔___________〕。而在顺序表中进行插入和删除操作,往往要移动大量元素,平均移动元素的数目为 〔___________〕,平均时间复杂度为〔___________〕。因此,假设对线性表进行频繁的插入和删除操作时,采用〔___________〕表相对适宜。假设插入和删除主要发生在表头和表尾,那么采用〔___________〕表更为适宜。答案:指针O(1) 表长的一半 O(n) 链循环链 〔7〕静态链表一般采用〔___________〕存储的链表结构。答案:数组〔8〕对于32位计算机环境,假设单链表中的数据类型为整性,那么其存储密度为

数据结构试题及答案2

数据结构试题及答案2 数据结构试题(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.2340 B.2336 C.2220 D.2160 4.如果以链表作为栈的存储结构,则退栈操作时( D ) A.必须判别栈是否满干 B.对栈不作任何判别 C.判别栈元素的类型 D.必须判别栈是否空 5.设数组Data[0..m]作为循环队列SQ的存储空间,front为队头

指针,rear为队尾指针,则执行出队操作的语句为( A ) A.front=(front+1)%(m+1) B.front=(front+1)% m C.rear=(rear+1)% m D. front=front+1 6.深度为6(根的层次为1)的二叉树至多有( B )结点 A.64 B.63 C.31 D.32 7.将含100个结点的完全二叉树从根这一层开始,每层从左至右依次对结点编号,根结点的编号为1。编号为47的结点X的双亲的编号为( C ) A.24 B.25 C.23 D.2无法确定 8.设有一个无向图G=(V,E)和G'=(V',E'),如果G'为G的生成树,则下面不正确的说法是( D ) A.G'为G的子图 B.G'为G的一个无环子图 C.G'为G的极小连通子图且V'=V D.G'为G的连通分量 9.用线性探测法查找闭散列上,可能要探测多个散列地址,这些位置上的键值( D ) A.一定都是同义词 B.一定都不是同义词 C.都相同 D.不一定都是同义词 10.二分查找要求被查找的表是( C )

数据结构 期末考试复习试卷二及答案

期末考试复习 试卷二 一、选择题(本题共20分,每题2分) 1.下面程序段的时间复杂度为()。 for(i=1;i<=n;i++) for(j=1;j<=n;j++) s++; A. O(n) B. O(n2) C. O(2*n) D. O(i*j) 2.线性表采用链式存储时,结点的存储地址()。 A.必须是不连续的B.部分地址必须是连续的 C.连续与否均可D.和头结点的存储地址相连续 3.若让元素1,2,3依次进栈,则出栈时的序列不可能出现的是()。 A.3,2,1 B.1,2,3 C.3,1,2 D.2,1,3 4.下面说法不正确的是( ) A.串S1=“this_is_a_string”的长度是16。 B.串S2=“this”是串S1的子串。 C.串S3=“thisis”在串S1中的位置是1。 D.串S4=“a”在串S1中的位置是9。 5.一个非空广义表的表头()。 A.不可能是子表B.只能是子表 C.只能是原子D.可以是子表或原子 6.完全二叉树( )满二叉树 A.不一定是 B.一定不是 C.一定是 D.不能确定关系 7. 用链表表示线性表的优点是() A.便于随机存取 B.便于插入和删除操作 C.花费的存储空间较顺序存储少 D.元素的物理顺序与逻辑顺序相同 8.在一个具有n个顶点的无向图中,要连通全部顶点至少需要多少条边( )。 A.n(n-1)/2 B.n-1 C.n D.n+1 9.下列查找方法中哪一种不适合元素的链式存储结构( ) A.顺序查找 B.分块查找 C.二分查找 D.散列查找10.下面哪种排序方法稳定性最好( )。 A.希尔排序 B.冒泡排序 C.快速排序 D.堆排序二、填空题(本题共20分) 1.数据的逻辑结构可以分为两大类:_________和________。 2. 在二叉树的第i层上最多有___________个结点。 3. 无向图中恰好有__________条边,才称为无向完全图。

数据结构第2章习题参考答案

2.7 习题 2.7.1知识点:线性表的逻辑构造 一、选择题 1①线性表L=〔a 1, a 2 ,…,a n 〕,以下说法正确的选项是〔D 〕。 A.每个元素都有一个直接前驱和一个直接后继。 B.线性表中至少要有一个元素。 C.表中诸元素的排列顺序必须是由小到大或由大到小。 D.除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。 2①在线性表的以下运算中,不改变数据元素之间构造关系的运算是〔D 〕。 A.插入B.删除 C.排序D.定位 3①线性表是具有n 个〔C 〕的有限序列〔n>0〕。【清华大学1998】 A.表元素B.字符C.数据元素D.数据项E.信息项 二、判断题 〔T 〕1①线性表中的每个结点最多只有一个前驱和一个后继。 〔 F 〕2①线性表中的每个结点都至少有一个前驱结点和后继结点。 〔 F 〕3①线性表是N个数的有限序列。 〔F〕4①同一线性表的数据元素可以具有不同的特性。 〔T 〕5①线性表的长度n就是表中数据元素的个数,当n=0时,称为空表。 〔T 〕6①线性表是一个相当灵敏的数据构造,它的长度可根据需要增长或缩短。 〔 F 〕7①对线性表中的数据元素只能进展访问,不能进展插入和删除操作。 2.7.2知识点:线性表的顺序存储构造 一、选择题 1①在一个长度为n的顺序表中,在第i个元素〔1 <= i <=n+1〕之前插入一个新元素时需向后挪动〔 B 〕个元素. A.n-1 B.n-i+1 C.n-i-1 D.i 2①假设某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,那么采用〔D 〕存储方式最节省时间。 A.单链表B.双链表C.单向循环D.顺序表 3②一个数组第一个元素的存储地址是100,每个元素的长度为2,那么第5个元素的地址是〔B 〕 A.110 B.108 C.100 D.120 4①下述哪一条是顺序存储构造的优点〔 A 〕。【北方交通大学2001】 A.存储密度大B.插入运算方便

数据结构导论自考题-2_真题(含答案与解析)-交互

数据结构导论自考题-2 (总分100, 做题时间90分钟) 一、单项选择题 在每小题列出的四个备选项中只有一个是符合题目要求的。 1. 与数据元素本身的形式、内容、相对位置、个数无关的是数据的( ) A.存储结构B.存储实现 C.逻辑结构D.运算实现 SSS_SIMPLE_SIN A B C D 分值: 2 答案:C 2. 所有的存储结点存放在一个连续的存储空间,该存储方式是( )存储方式。 A.顺序B.链式 C.索引D.散列 SSS_SIMPLE_SIN A B C D 分值: 2 答案:A [解析] 本题主要考查的知识点是顺序存储方式。 [要点透析] 顺序存储方式是指所有存储结点存放在一个连续的存储区里。利用结点在存储器中的相对位置来表示数据元素之间的逻辑关系。 3. 设线性表有n个元素,以下操作中,( )在顺序表上实现比在链表上实现效率更高。 A.输出第i(1≤i≤n)个元素值B.交换第1个元素与第2个元素的值 C.在第i个元素前插入一个元素D.删除第i个元素 SSS_SIMPLE_SIN A B C D 分值: 2 答案:A [解析] 本题主要考查的知识点为顺序表和链表。 [要点透析] 由于顺序表具有随机存取特性,所以和链表相比输出第i个元素时效率很高。本题答案为A。 4.

与单链表相比,双链表的优点之一是( ) A.插入、删除操作更简单B.可以进行随机访问 C.可以省略表头指针或表尾指针D.前后访问相邻结点更灵活 SSS_SIMPLE_SIN A B C D 分值: 2 答案:D 5. 循环队列的队满条件为( ) A.(CQ.rear+1)%maxsize==(CQ.front+1)%maxsize B.(CQ.rear+1)%maxsize==CQ.front+1 C.(CQ.rear+1)%maxsize==CQ.front D.CQ.rear==CQ.front SSS_SIMPLE_SIN A B C D 分值: 2 答案:C [解析] 本题主要考查的知识点是循环队列的队满条件。 [要点透析] 约定循环队列的队头指针指示队头元素在数组中实际位置的前一个位置,队尾指针指示队尾元素在数组中的实际位置。当队尾指针“绕一圈”后赶上队头指针时,视为队满。 6. 数组A[0...5][0...5]的每个元素占5个字节,将其以列为主序存储在起始地址为1000的内存单元中,则元素A[5][5]的地址是( ) A.1175 B.1180 C.1205 D.1210 SSS_SIMPLE_SIN A B C D 分值: 2 答案:A 7. 若二叉树(如图所示)采用二叉链表存储结构,要交换其所有分支结点左右子树的位置,最合适的遍历方法是( ) A.先序遍历B.中序遍历 C.后序遍历D.按层次遍历 SSS_SIMPLE_SIN A B C D 分值: 2

数据结构第二单元测验题目的参考答案

数据结构第二单元测验题目的参考答案 数据结构第二单元测验答案 一、选择题 1.由3 个结点可以构造出多少种不同的有向树( ) A.2 B.3 C.4 D.5 2.由3 个结点可以构造出多少种不同的二叉树( d) A.2 B.3 C.4 D.5 3.二叉树的第I层上最多含有结点数为(c ) A.2I B.2I-1-1 C.2I-1 D.2I -1 4.一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有( b )结点 A.2h B.2h-1 C.2h+1 D.h+1 除第一层外,每层最少2个结点 5.一棵树高为K的完全二叉树至少有( c )个结点 A.2k–1 B.2k-1–1 C.2k-1

6.深度为6的二叉树最多有( c )个结点 A.64 B.63 C.32 D.31 7.设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶子数为( ) A.5 B.6 C.7 D.8 8.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( c ) A.9 B.11 C.15 D.不确定 9.一棵完全二叉树上有1001个结点,其中叶子结点的个数是( e ) A.250 B.500 C.254 D.505 E.以上答案都不对 10.对于有n 个结点的二叉树, 其高度为( d ) A.nlog2n B.log2n C.?log2n?|+1 D.不确定 11.将含有83个结点的完全二叉树从根结点开始编号,根为1号,按从上到下.从左到右顺序结点编号,那么编号为41的双亲结点编号为() A.42 B.40

D.20 12.一个二叉树按顺序方式存储在一个维数组中,如图 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A B C D E F G H I J 则结点E在二叉树的第(c )层。 A. 1 B. 2 C. 3 D.4 13.某二叉树的先序序列和后序序列正好相反,则该二叉树一定是( b)的二叉树 A.空或只有一个结点 B.高度等于其结点数 C.任一结点无左孩子 D.任一结点无右孩子 14.任何一棵二叉树的叶结点在其先根.中根.后根遍历序列中的相对位置( c ) A.肯定发生变化 B.有时发生变化 C.肯定不发生变化 D.无法确定 15.二叉树线索化后,仍不能有效求解的问题是(d ) A.先序线索二叉树中求先序后继 B.中序线索二叉树中求中序后继 C.中序线索二叉树中求中序前驱 D.后序线索二叉树中求后续后继 一共有两种情况:一个是先序线索中求先序前驱和后序线索求后序后继 16.如果T2是由有序树T转化而来的二叉树,那么T中结点的前

计算机考研数据结构试卷二(练习题含答案)

数据结构试卷2 一、选择题 1.下面关于线性表的叙述错误的是()。 (A) 线性表采用顺序存储必须占用一片连续的存储空间 (B) 线性表采用链式存储不必占用一片连续的存储空间 (C) 线性表采用链式存储便于插入和删除操作的实现 (D) 线性表采用顺序存储便于插入和删除操作的实现 2.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有()个空指针域。 (A) 2m-1 (B) 2m (C) 2m+1 (D) 4m 3.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为()。 (A) R-F (B) F-R (C) (R-F+M)%M (D) (F-R+M)%M 4.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为()。 (A) BADC (B) BCDA (C) CDAB (D) CBDA 5.设某完全无向图中有n个顶点,则该完全无向图中有()条边。 (A) n(n-1)/2 (B) n(n-1) (C) n2(D) n2-1 6.设某棵二叉树中有2000个结点,则该二叉树的最小高度为()。 (A) 9 (B) 10 (C) 11 (D) 12 7.设某有向图中有n个顶点,则该有向图对应的邻接表中有()个表头结点。 (A) n-1 (B) n (C) n+1 (D) 2n-1 8.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为()。 (A) 2,3,5,8,6 (B) 3,2,5,8,6 (C) 3,2,5,6,8 (D) 2,3,6,5,8 二、填空题 1.为了能有效地应用HASH查找技术,必须解决的两个问题是_______和_______。 2.下面程序段的功能实现数据x进栈,要求在下划线处填上正确的语句。 typedef struct {int s[100]; int top;} sqstack; void push(sqstack &stack,int x) { if (stack.top==m-1) printf(“overflow”); else {____________________;_________________;} } 3.中序遍历二叉排序树所得到的序列是___________序列(填有序或无序)。 4.快速排序的最坏时间复杂度为___________,平均时间复杂度为__________。 5.设某棵二叉树中度数为0的结点数为N 0,度数为1的结点数为N 1 ,则该二叉树中度数为 2的结点数为_________;若采用二叉链表作为该二叉树的存储结构,则该二叉树中共有_______个空指针域。 6.设某无向图中顶点数和边数分别为n和e,所有顶点的度数之和为d,则e=_______。 7.设一组初始记录关键字序列为(55,63,44,38,75,80,31,56),则利用筛选法建立 的初始堆为___________________________。

相关主题
相关文档
最新文档