北航2011年硕士研究生入学考试数据结构与C语言试题与答案

北航2011年硕士研究生入学考试数据结构与C语言试题与答案
北航2011年硕士研究生入学考试数据结构与C语言试题与答案

2011 年硕士研究生入学考试

“数据结构与C语言程序设计”(科目代码:991)试题与答案

一、单项选择题(本题共20分,每小题各2分)

1.下列关于线性表的存储结构的叙述中,错误的是。

A.线性表的顺序存储结构中隐式地存储了数据元素之间的逻辑关系

B.线性表的顺序存储结构一定需要占用一片地址连续的存储空间

C.线性表的链式存储结构通过指针来反映数据元素之间的逻辑关系

D.线性表的链式存储结构占用的存储空间一定不连续

2.若front 和rear 分别表示链接队列的队头指针与队尾指针,则向队列中插入一个由p 指的新元素的过程是依次执行。

A.rear=p; front=p; B.front=p; rear=p;

C.rear->link=p; rear=p; D.front->link=p; rear=p;

3.下列关于二叉树的叙述中,正确的是。

A.二叉树的度可以小于2 B.二叉树的度等于2

C.二叉树中至少有一个结点的度为2 D.二叉树中每一个结点的度都为2

4.若某二叉树有40个叶结点,则该二叉树的结点总数最少是。

A.78 B.79 C.80 D.81

5.若采用邻接矩阵存储一个有向图,且邻接矩阵主对角线以下元素均为0,则该有向图的拓扑序列。

A.存在且惟一B.存在但可能不惟一

C.不存在D.无法确定

6.下面关于AOE 网的叙述中,正确的是。

A.AOE 网是一个带权的连通图

B.AOE 网是一个带权的强连通图

C.AOE 网是一个带权的无回路的连通图

D.AOE 网是一个带权且无回路的有向图

7.下列关于线性表查找方法的叙述中,错误的是。

A.顺序查找法适合于采用顺序存储结构和链式存储结构的线性表的查找

B.对于相同元素,顺序查找法一定能够查找到表中首次出现的元素

C.对于相同元素,折半查找法一定能够查找到表中首次出现的元素

D.对于相同元素,折半查找法不一定能够查找到表中首次出现的元素

8.在二叉排序树中进行查找的平均时间效率主要与下列因素之一有关,该因素是。A.二叉排序树的深度B.二叉排序树中结点的个数的多少

C.被查找结点的度D.二叉排序树的存储结构

9.下列4 种排序方法中,每一趟排序结束时不一定能够确定一个元素排序最终位置的是。

A.插入排序B.快速排序

C.堆积(Heap)排序D.二路归并排序

2

10.下列4 种排序方法中,当待排序的序列中元素初始时已经按值有序,排序所花费的

时间反而有可能最多的是。

A.泡排序B.谢尔(Shell)排序

C.快速排序D.堆积(Heap)排序

二、简答题(本题共20分,每小题各5 分)

1.等概率情况下,在长度为n 的顺序表中插入和删除一个数据元素分别需要平均移动多少个元素?移动的元素个数主要取决于哪几个因素?

2.在采用循环单链表作为某队列的存储结构时,可以只设置一个队头指针,也可以只设置一个队尾指针。请问:从操作的时间效率考虑,采用哪种方案更合适?为什么?

3.对于具有n 个顶点、e 条边的稀疏图和稠密图,就空间性能而言,采用邻接矩阵存储方法和邻接表存储方法哪一种更合适?为什么?

4.什么是小顶堆积(Heap)?在小顶堆积中,值最大的元素可能处在什么位置?(可以借助一棵二叉树描述)

三、综合题(本题共20分,每小题各5 分)

1.下列算法的功能是删除长度为n的顺序表A中重复出现的多余元素,即对于重复出现的元素,表中只保留一个。请在算法的空白处填上必要的内容,使算法完整。

void PURGE(ElemType A[ ], int &n)

{ int i=0,j,k;

while(i

j=i+1; /* 从第i+1 个元素开始逐个与第i个元素比较*/

while(j

if(A[j]==A[i]){ /* 若A[j]与A[i]相同,删除A[j] */

for( ①)

A[k-1]=A[k];

n--; /* 修改表的长度*/

}else

}

}

2.请将由题三2 图给定的树转换为一棵二叉树。

(只须画出转换后的二叉树)

题三2 图

3.已知某3阶B-树如题三3图所示,请画出在

该B-树中插入关键字20 以后得到的B-树。

题三3 图

60

30 50 70

15 25 35 45 55 65 75

A

B C D

E F G H I J

3

4.请分别写出对数据元素序列(49,38,65,97,76,13,27,49 )按从小到大进行谢尔(Shell)排

序时每一趟的结果。设排序的间隔数(也称为增量)依次为4,2,1。

四、算法设计题(本题15 分)

已知某哈夫曼树采用二叉链表存储,结点构造为lchild data rchild ,其中,叶

结点的data 域中已经存放了该叶结点对应的权值。请写一非递归算法,该算法的功能是计算

根结点指针为T的哈夫曼树的带权路径长度(WPL)。

要求:

1.用文字简要给出算法的基本思想;(5 分)

2.根据算法的基本思想写出相应算法。(10 分)

五、程序阅读题(本题共20分,每小题各2分)

1.下列程序的输出结果是。

main( )

{

char ch=‘A’;

printf(“ch(1)=%d,ch(2)=%c\n”,ch,ch+1);

}

2.下列程序段的输出结果是。

k=1; t=3;

do{

t+=k++;

if(t%7==0)

continue;

else

++k;

}while(t<15);

printf(“%d”,k);

3.下列程序的输出结果是。

#include

main( )

{ int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},a[5]={0},i;

for(i=0;i<12;i++)

a[s[i]]++;

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

printf(“%d”,a[i]);

printf(“\n”);

}

4.下列程序的输出结果是。

#include

main( )

{ char str1[15]= “good”,str2[10]= “morning”;

printf(“%d\n”,strlen(strcat(str1,str2)));

}

5.下列程序的输出结果是。

main( )

4

{ int a[5]={1,2,3,4,5},*p;

p=a;

printf(“%d\n”,*(++p));

}

6.下列程序的输出结果是。

main( )

{ char *s=“13579”;

s++;

printf(“%c%c%c”,*s,*(s+1),*s+1);

}

7.下列程序的输出结果是。

#define MAX(A,B) (A)>(B)?(A):(B)

#define PRINT(Y) printf(“Y=%d\t”,Y)

main( )

{ int a=1,b=2,c=3,d=4,temp;

temp=MAX(a+b,c+d);

PRINT(temp);

}

8.下列程序的输出结果是。

int fun(int x,int y)

{ return(x+y); }

main( )

{

int a=2,b=5,c=8;

printf(“%d\n”,fun(fun(a+c,b),a-c));

}

9.下列程序的输出结果是。

#include

main( )

{

struct date{

int year,month,day;

}today;

printf(“%d\n”,sizeof(struct date));

}

10.执行下列程序后,文件file2.txt中的内容是。#include

main( )

{ FILE *in,*out;

char *str1=“YOU PLAN TO FAIL.”;

char *str2=“IF YOU FAIL TO PLAN.”;

if((in=fopen(“file1.txt”,“w”))!=NULL)

while(*str1!=‘.’)

fputc(*str1++,in);

fclose(in);

if(((in=fopen(“file1.txt”,“r”))!=NULL)&&

((out=fopen(“file2.txt”,“w”)!=NULL)){

while(!eof(in)){

fgetc(in);

5

fputc(*str2++,out);

}

}

fclose(in);

fclose(out);

}

六、填空题(本题共20分,每小题各4 分)

1.对于下列程序,为了使输出结果为t=4,输入量x和y应该满足的条件是。

main( )

{ int x,y,s=1,t=1;

scanf(“%d,%d”,&x,&y);

if(x>0)

s=s+1;

if(x>y)

t=s+t;

else if(x==y)

t=5;

else

t=2*s;

printf(“t=%d”,t);

}

2.若已有下列定义,则表达式p->b/n.a 的值是①,表达式p->b/n.a*++p->b 的值是②,表达式(*p).a+p->c的值是③。

struct num{

int a;

int b;

float c;

}n={1,3,5.0};

struct num *p=&n;

3.下列程序段的功能是计算1000!的末尾含有多少个零。请在程序段的空白处填上必要的内容,使程序段完整。(提示:只要计算出1000!中含有因数5 的个数即可)for(k=0,i=5;i<=1000;i+=5){

m=i;

k++;

m=m/5;

}

}

4.下列程序的功能是通过指针操作,找出并输出三个整数中的最小者。请在程序的空白处填上必要的内容,使程序完整。

#include

main( )

{

int *a,*b,*c,num,x,y,z;

a=&x;

b=&y;

c=&z;

printf(“Input a,b,c:”);

6

scanf(“%d%d%d”,a,b,c);

printf(“%d,%d,%d\n”,*a,*b,*c);

num=*a;

if(*a>*b)

①;

if(num>*c)

②;

printf(“The minimun=%d\n”,num);

}

5.下列程序的功能是先由用户通过键盘输入一个文件名,然后向此文件输入一串字符(假设输入以字符“#”结束),最后再将当前日期写到文件的尾部。请在程序的空白处填上必要的内容,使程序完整。

#include

main( )

{

char ch,date[20],fname[30];

FILE *fp;

printf(“Input the file name:”);

scanf(“%s”,fname);

if((fp=fopen( ①))==NULL){

printf(“Can not open file %s !\n”,fname);

exit(0);

}

printf(“Input a string:\n”);

while((ch=getchar( ))!=‘#’)

fputc( ②);

printf(“Enter date:\n”);

scanf(“%s”,date);

fclose(fp);

}

七、程序设计题(本题15 分)

请编写一C语言程序,该程序的功能是先通过键盘输入一个整数n,然后调用一个递归

函数fun(int n)计算1+2+3+…+n,最后输出计算结果。

八、程序设计题(本题20 分)

请设计一C语言函数(注:只须写出函数,不必写出完整程序),该函数的功能是用尽可

能高的时间效率与空间效率将一个int类型的数组A[0..n-1]的所有元素依次循环右移k个位置。

例如,对于某数组,当k=3时(即把数组所有元素循环右移3 个位置),是将

10 20 30 40 50 60 70 转换为50 60 70 10 20 30 40

7

参考答案:

一、单项选择题

1.D 2.C 3.A 4.B 5.B

6.D 7.C 8.A 9.D 10.C

二、简答题

1.答:在等概率情况下,在长度为n的顺序表中插入一个数据元素需要平均移动n/2

个元素,删除一个数据元素需要平均移动(n-1)/2 个元素。具体移动的元素个数主要取决于表的长度n以及插入或删除的位置,位置越接近n,做需要移动的元素就越少。

2.答:只设置一个队尾指针更合适。因为对于采用循环单链表作为存储结构的队列而言,可以通过队尾指针在O(1)的时间内找到队头指针,而只设置队头指针要在O(n)的时间内才能找到队尾指针。因此,只设置队尾指针,进队和出队操作的时间复杂度均为O(1);而只设置队头指针,出队操作的时间复杂度为O(1),但进队操作的时间复杂度为O(n)。3.答:一般情况下,采用邻接矩阵存储图需要一个一维数组存储顶点的数据信息和一

个二维数组(称之为邻接矩阵)存储边或弧的信息,因此,空间复杂度为O(n2),与图中边或弧

的数量无关,可见邻接矩阵适合存储稠密图;而采用邻接表需要分别将以某顶点为出发点的所有边对应的边结点链接为一个线性链表,同时用一个一维数组存储图中顶点的数据信以及指向以该顶点为出发点的第一条边对应的边结点的指针,因此,空间复杂度为O(n+e),可见

图中边(或弧)数越少需要的存储空间就越少,因此,邻接表适合存储稀疏图。

4.答:如果借助二叉树来描述,小顶堆积是一棵完全二叉树,二叉树中任意分支结点

的值均小于或等于其左孩子和右孩子(若右孩子存在)的值。堆积中值最大的元素对应的结点一定是叶结点,否则,该结点必定有大于它的孩子结点,这与小顶堆积的定义相矛盾;因此,值最大的元素对应的结点只能作为叶结点出现在二叉树的最下面两层中的一层中。

三、综合题

1.①k=j;k

2.3.

4.

趟序间隔数各趟排序结果

初始 49 38 65 97 76 13 27 49'

第1趟4 49 13 27 49' 76 38 65 97

第2趟2 27 13 49 38 65 49' 76 97

第3趟1 13 27 38 49 49' 65 76 97

A

C

B

F D

E

G

H

I

J

30 60

15 25 35 45 55 65 75

20 50 70

8

四、算法设计题

(1)算法的基本思想:

本题宜采用二叉树的后序遍历的非递归算法完成。在遍历过程中,访问一个叶结点时,

将该叶结点的数据域值(该叶结点的权值)与该叶结点的路径长度(即当前栈顶指针值加1)相乘,并进行WPL值的累加。遍历结束时便求的该哈夫曼树的WPL。

(2)算法:

#define MaxNum 50 /* 定义二叉树中结点最大数目*/

int POSTORDER_WPL(BTREE T)

{

/* T为二叉树根结点所在链结点的地址*/

BTREE STACK1[MaxNum],p=T;

int STACK2[MaxNum],flag,top=-1;

WPL=0;

if(T!=NULL)

do{

while(p!=NULL){

STACK1[++top]=p; /* 当前p指结点的地址进栈*/

STACK2[top]=0; /* 标志0 进栈*/

p=p->lchild; /* 将p移到其左孩子结点*/

}

p=STACK1[top];

flag=STACK2[top--]; /* 退栈*/

if(flag==0){

STACK1[++top]=p; /* 当前p指结点的地址再次进栈*/

STACK2[top]=1; /* 标志1 进栈*/

p=p->rchild; /* 将p移到其右孩子结点*/

}

else{

if(p->lchild==NULL&& p->rchild==NULL) /* p指结点为叶结点*/

WPL=WPL+p->data*(top+1);

p=NULL;

}

}while(!(p==NULL&& top== 1));

returnWPL;

}

五、程序阅读题

1.ch(1)=65,ch(2)=B 2.8 3.4332 4.11

5.2 6.354 7.Y=7 8.9

9.6 10.IF YOU FAIL TO PL

六、填空题

1.0

3.m%5==0 4.①num=*b ②num=*c

5.① fname, “w”② ch,fp ③ fp,“%s”,date

七、程序设计题

double fun(int n)

{

double s;

if(n==1)

return 1;

s=n+fun(n-1);

return s;

}

9

main( )

{ double sum;

int n;

printf(“Input n:”);

scanf(“&d”,&n);

sum=fun(n);

printf(“The result is %lf\n”,sum);

}

八、程序设计题

(1)算法的基本思想:

根据k 值将数组A[0..n-1]分成前后两个部分,其中,前一部分为数组的前n-k 个元素,

后一部分为数组的后k个元素;然后先将后一部分中的k个元素进行逆置(即前后对应位置的元素依次颠倒位置),接着将前一部分中的n-k个元素进行逆置,最后将整个数组的所有元素再进行一次逆置,即得到所需要的结果。

(2)程序:

void MOVE2(int A[ ],int n,int k)

{

REVERSE(A,n-k,n-1); /* 逆置数组的后k个元素*/

REVERSE(A,0,n-k-1); /* 逆置数组的前n-k个元素*/

REVERSE(A,0,n-1); /* 逆置数组的所有元素*/

}

void REVERSE(int A[ ],int from,int to)

{

int i, temp;

for(i=0;i<(to-from+1)/2;i++){ /* 逆置下标为from到to之间的所有元素*/

temp=A[from+i];

A[from+i]=A[to-i];

A[to-i]=temp; /* 交换元素A[from+i]与A[to-i]的位置*/

}

}

效率分析:第1 次调用REVERSE 函数的时间复杂度为O(k),第2次调用REVERSE 函数

的时间复杂度为O(n-k),第3 次调用REVERSE 函数的时间复杂度为O(n),因此,整个程序的

时间复杂度为O(n)。只用了1 个数组元素的辅助空间temp。

指定参考书:

1.《数据结构教程第二版》唐发根编著北京航空航天大学出版社2005

2.《C程序设计第三版》谭浩强编著清华大学出版社2005

建议选用2010年7月

第6次印刷的书__

数据结构C语言版期末考试试题(有答案)

“数据结构”期末考试试题 一、单选题(每小题2分,共12分) 1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。 A. HL=ps p一>next=HL B. p一>next=HL;HL=p3 C. p一>next=Hl;p=HL; D. p一>next=HL一>next;HL一>next=p; 2.n个顶点的强连通图中至少含有( )。 A.n—l条有向边 B.n条有向边 C.n(n—1)/2条有向边 D.n(n一1)条有向边 3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。 A.O(1) B.O(n) C.O(1Ogzn) D.O(n2) 4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。 A.24 B.48 C. 72 D. 53 5.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。 A.整形 B.引用型 C.指针型 D.常值引用型· 6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )。 A.O(n) B.O(1) C.O(n2) D.O(10g2n) 二、填空题(每空1分,共28分) 1.数据的存储结构被分为——、——、——和——四种。 2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为——域和——域。 3.——中缀表达式 3十x*(2.4/5—6)所对应的后缀表达式为————。 4.在一棵高度为h的3叉树中,最多含有——结点。 5.假定一棵二叉树的结点数为18,则它的最小深度为——,最大深度为——· 6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定——该结点的值,右子树上所有结点的值一定——该结点的值。 7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层——调整,直到被调整到——位置为止。 8.表示图的三种存储结构为——、——和———。 9.对用邻接矩阵表示的具有n个顶点和e条边的图进行任一种遍历时,其时间复杂度为——,对用邻接表表示的图进行任一种遍历时,其时间复杂度为——。 10.从有序表(12,18,30,43,56,78,82,95)中依次二分查找43和56元素时,其查找长度分别为——和——· 11.假定对长度n=144的线性表进行索引顺序查找,并假定每个子表的长度均

数据结构模拟题(开卷)

《数据结构》模拟题(补) 一.单项选择题 1.在线性表的下列存储结构中,读取元素花费时间最少的是【】。 A.单链表B.双链表C.顺序表D.循环链表 2.设计一个判定表达式中左、右括号是否配对出现的算法,采用【】数据结构最佳。 A.集合B.线性表C.队列D.栈 3.n个结点的线索二叉树上含有的线索数为【】。 A.2n B.n-1 C.n D.n+1 4.设广义表D=(a,(b,c)),则tail(D)=【】。 A.b,c B.(b,c) C.((b,c)) D.c 5.由4个结点可以构造出【】种不同的二叉树。 A.12 B.13 C.14 D.15 6.在栈中,出栈操作的时间复杂度为【】。 A.O(1) B.O(n) C.O(log2n) D.O(n2) 7.假设Q[0..len-1]表示循环队列,f为队头指针,r为队尾指针,则进队操作语句是【】。 A.f=f+1 B.r=r+1 C.f=(f+1)%len D.r=(r+1)%len 8.一个n*n的对称矩阵,如果以行或列为主序放入内存,则其容量为【】。 A.n*n B.n*n/2 C.n*(n+1)/2 D.(n+1)*(n+1)/2 9.队列操作的原则是【】。 A.进优于出B.出优于进C.先进先出D.后进先出 10.下列数据结构中,【】是非线性数据结构。 A.栈B.串C.队列D.树 11.两个指针p和q,分别指向单链表的两个元素,p所指元素是q所指元素的前驱,则【】。 A.p==q B.q->next=p C.p->next=q D.p->next=q->next 12.数组A中,每个元素的长度为4个字节,行下标i从1到5,列下标j从1到4,从首 地址SA开始连续存放在存储器内,该数组按行存放时,元素A[3][2]的起始地址为【】。 A.SA+20 B.SA+36 C.SA+40 D.SA+45 13.已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址为d1, 则第i个结点的地址为【】。 A.d1+(i-1)*m B.d1+i*m C.d1+(i+1)m D.d1-i*m 14.分析下列算法suanfa1(n)的时间复杂度是【】。 void suanfa1(int n) { int i,j,x=1; for(i=0;i

数据结构模拟试题及答案

数据结构模拟试题一 一、判断题(每小题1 分,共15分) 1.计算机程序处理的对象可分为数据和非数据两大类。 2.全体自然数按大小关系排成的序列是一个线性表。 3.在描述单向链表的结点类型时,必须首先描述数值字段,然后再描述指针字段。 4.顺序栈是一种规定了存储方法的栈。 5.树形结构中的每个结点都有一个前驱。 6.在任何一棵完全二叉树中,最多只有一个度为1的分支结点。 7.若某顶点是有向图的根,则该顶点的入度一定是零。 8.如果某图的邻接矩阵有全零的行,没有全零的列,则该图一定是有向图。 9.用一维数组表示矩阵可以节省存储空间。 10.广义表的长度与广义表中含有多少个原子元素有关。 11.分块查找的效率与线性表被分成多少块有关。 12.散列表的负载因子等于存入散列表中的结点个数。 13.在起泡排序过程中,某些元素可能会向相反的方向移动。 14.按某种逻辑关系组织起来的记录的集合称为逻辑记录。 15.索引非顺序文件的特点是索引表中的索引项不一定按关键字大小有序排列。 二、填空题(每空1分,共15分) 1.顺序表是一种_____________线性表。 2.若用Q[1]~Q[m]作为非循环顺序队列的存储空间,则对该队列最多只能执行___次插入操作。 3.栈和队列的区别在于________的不同。 4.在高度为h(h≥0)的二叉树中至少有___个结点,至多有___个结点。 5.若用二叉链表来存储具有m个叶子,n个分支结点的树,则二叉链表中有___个左指针域为空的结点,有___个右指针域 为空的结点。 6.n个顶点的有根有向图中至少有___条边,至多有___条边。 7.10行20列矩阵若用行优先顺序表来表示,则矩阵中第8行第7列元素是顺序表中第___个元素。 8.在各元素查找概率相等的情况下,用顺序查找方法从含有12个元素的有序表中查找一个元素,元素间的平均比较次数是 _____。 9.在归并两个长度为m的有序表时,排序码的比较次数至少是___次,至多是___次。 10.在高度为3的6阶B-树中,至少有___个关键字,至多有___个关键字。 三、选择题(每题2分,共30分) 1.计算机所处理的数据一般具有某种内在联系性,这是指________。 A.元素和元素之间存在某种关系B.数据和数据之间存在某种关系 C.元素内部具有某种结构D.数据项和数据项之间存在某种关系 2. 假设顺序表目前有4个元素,第i个元素放在R[i]中,1≤i≤4 。若把新插入元素存入R[6],则________。 A.会产生运行错误B.R[1]~R[6]不构成一个顺序表 C.顺序表的长度大于顺序表元素个数,会降低存储空间利用率 D.顺序表元素序号和数组元素下标不一致,会给使用带来麻烦 3. 设H是不带表头结点循环单向链表的表头指针,P是和H同类型的变量。当P指向链表最后一个结点时,_________。A.P所指结点指针字段的值为空B.P的值与H的值相等 C.P所指结点的地址与H的值相等D.P所指结点指针字段的值与H的值相等 4. 栈的定义不涉及数据的__________。 A.逻辑结构B.存储结构C.运算D.逻辑结构和存储结构 5. 设5个元素进栈的顺序是1,2,3,4,5,则出栈的顺序有可能是___________。 A.2,4,1,3,5 B.3,4,1,5,2 C.3,2,4,1,5 D.4,1,3,2,5 6. 若某棵二叉树结点的前序序列和中序序列相同,则该二叉树_________。 A.只有一个结点B.每个结点都没有左孩子C.每个结点都没有右孩子D.不存在 7.对于一棵具有n个结点,度为3的树来说,____________。 A.树的高度至多是n-3 B.树的高度至多是n-2 C.树的最低高度是┏log3(n+1)┓ D.至少在某一层上正好有3个结点 8.n个顶点的有向图如果可以进行拓扑排序,则可以断定该有向图__________。 A.含n个强连通分量B.有唯一的入度为0的顶点C.有多个出度为0的顶点 D.是一个有根有向图 9. 特殊矩阵用行优先顺序表表示,_____________ A.简化了矩阵元素之间的逻辑关系B.便于按行处理矩阵元素

北航数据结构与程序设计真题-2013北航991真题与答案

2013年''数据结构与C程序设计〃(代码991)试题 一、单项选择题(本题共20分,每小题各2分) 1.对于长度为n的线性表.建立其对应的做链表的时间复杂度为()。 A.0(1): B. O(log2n):? O(n): D? O(n2)。 2.一般情况下,在一个双向链表中插入一个新的链结点,()o A.需要修改4个抬针域内的指针: B.需要修改3个指针域内的指针: C.需要修改2个指针域内的抬针:D?只需要修改1个指针域内的指针。 3.假设用单?个字母表示中缀表达式中的一个运算数(或称运算对&)?并利用堆栈产生中缀表达式对应的后缀表达式。对于中缀表达式A+B*(C/D-E),十从左至右扫描到运算数E时,堆栈中的运算符依次是()。(注:不包含表达式的分界符) A.+*/-: B. +*(/-: C? +*-:? +*(-o 4.若某二叉排序树的前序遍历序列为50,20,40,30,80,60,70.则后序遍历序列为()。 A. 30,40,20,50,70,60,80: B. 30,40,20,70,60,80,50: C. 70,60,80,50,30,40,20: D. 70,60,80,30,40,20,50. 5.分别以6, 3, 8, 12, 5Z 7对应叶结点的权值构造的哈夫曼(Huffman)树的深度为()。 A. 6: B. 5: C? 4: D? 3。 &下列关于图的叙述中,错误的是()0 A.根据图的定义,图中至少有一个顶点: B.根据图的定义.图中至少有一个顶点和一条边(弧): C.具有n个顶点的无向图最女有n(n-l)/2条边; D.具有n个顶点的有向图最多有n(n-l)条边(弧)。 7.若在有向图G的拓扑序列中,顶点vi在顶点vj之前,则下列4种情形中不可能出现的是()》 A.G中有弧 B.G中没有弧vvi,vj>: C.G中有一条从顶点vi到顶点vj的路径: D?G中有一条从顶点vj到顶点vi的路径。 8.下列关于査找操作的叙述中.错误的是()。 A.在顺序表中査找元素可以采用顺序查找法,也可以采用折半査找法: B.在链表中査找结点只能采用顺序査找法,不能采用折半査找法: C.一般情况下,顺序査找法不如折半查找法的时间效率商: D.折半査找的过程可以用一棵称之为''判定树"的二叉树來描述。 9.在一棵m阶B?树中,除根结点之外的任何分支结点包含关键字的个数至少是()。 A. m/2-1: B? m/2: C? m/2-l: D? m/2° 10.若对序列(49, 38, 65, 97, 76, 13, 27f 49J进行快速排序,则第一趙排序结束(即确定了第1个分界元素的最终位宜)时.序列的状态是()。 A. (13, 27, 49; 38, 49, 76, 97, 65): B. (13, 38, 27, 49; 49, 76, 97, 65): C. (13, 38, 49; 27, 49, 97, 76, 65): D. (13, 38, 49;27t 49z 76, 97, 65)。 二、填空题(本题共20分,每小题各2分)

数据结构模拟试题1

一、单项选择题(在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。每小题2分,共40分) 1、串的长度是()。 A、串中不同字母的个数 B、串中不同字符的个数 C、串中所含字符的个数,且大于0 D、串中所含字符的个数 2、若用数组S[1..n]作为两个栈S1和S2的共同存储结构,对任何一个栈,只有当S全满时才不能作入栈操作。为这两个栈分配空间的最佳方案是()。 A、S1的栈底位置为0,S2的栈底位置为n+1 B、S1的栈底位置为0,S2的栈底位置为n/2 C、S1的栈底位置为1,S2的栈底位置为n D、S1的栈底位置为1,S2的栈底位置为n/2 3、队列操作的原则是()。 A、先进先出 B、后进先出 C、只能进行插入 D、只能进行删除 4、有64个结点的完全二叉树的深度为()(根的层次为1)。 A、8 B、7 C、6 D、5 5、在有n个结点的二叉链表中,值为非空的链域的个数为()。 A、n-1 B、2n-1

C、n+1 D、2n+1 6、带权有向图G用邻接矩阵A存储,则顶点i的人度等于A中()。 A、第i行非∞的元素之和 B、第i列非∞的元素之和 C、第i行非∞且非0的元素个数 D、第i列非∞且非0的元素个数 7、在有n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为()。 A、0(n) B、0(log2n) C、0(nolg2n) D、0(n2) 8、若表R在排序前已按键值递增顺序排列,则()算法的比较次数最少。 A、直接插入排序 B、快速排序 C、归并排序 D、选择排序 9、下列排序算法中,()排序在某趟结束后不一定选出一个元素放到其最终的位置上。 A、选择 B、冒泡 C、归并 D、堆

数据结构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 .各结点的值如何C.对数据有哪些运算 B .结点个数的多少 D .所用的编程语言实现这种结构是否方 6.以下说法正确的是D A .数据项是数据的基本单位 B .数据元素是数据的最小单位 C.数据结构是带结构的数据项的集合 D .一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。 (1) A .找出数据结构的合理性B.研究算法中的输入和输出的关系 C .分析算法的效率以求改进C.分析算法的易读性和文档性 (2) A .空间复杂度和时间复杂度B.正确性和简明性 &下面程序段的时间复杂度是0( n2) s =0; for( I =0; i

《数据结构C》模拟试题

山东科技大学继续教育学院 《数据结构C》模拟试题一 班级姓名学号 一、选择题(20分) 1. 组成数据的基本单位是( )。 (A) 数据项(B)数据类型(C)数据元素(D)数据变量 2. 线性表的链接实现有利于( )运算。 (A) 插入(B)读表元(C)查找(D)定位 3. 串的逻辑结构与( )的逻辑结构不同。 (A) 线性表(B)栈(C)队列(D)树 4. 二叉树第i(i≥1)层最多有( )个结点。 (A) 2i(B)2i (C) 2i-1(D) 2i-1 5. 设单链表中p指向结点A,若要删除A后结点(若存在),则需要修改p的操作为( ) (A) p.Next = p.Next.Next (B)p=p.Next (C)p=p.Next.Next (D)p.Next=p 6. 设一数列的输入顺序为1,2,3,4,5,6,通过栈操作不可能排成的输出序列为( ) (A) 3,2,5,6,4,1 (B) 1,5,4,6,2,3 (C) 2,4,3,5,1,6 (D) 4,5,3,6,2,1 7. 设字符串S1=’ABCDEFG’,S2=’PQRST’,则运算S=CONCAT(SUB(S1,2,LENGTH(S2)),SUB(S1,LENGTH(S2),2))的结果为( ) (A) ‘BCQR’ (B) ‘BCDEF’ (C) ’BCDEFG’ (D) ‘BCDEFEF’ 8. 有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占1个地址空间,则a85地址为( ) (A)13 (B) 33 (C) 18 (D) 40 9. 如果结点A有3个兄弟,而且B为A的双亲,则B的度为( ) (A) 3 (B) 4 (C) 5 (D) 1 10. 线索化二叉树中某结点D没有左孩子的必要条件是( ) (A) D.Lchild=null (B) D.ltag=1 (C) D.Rchild=null (D) D.ltag=0 二、填空题(20分) 1. 对于一个以顺序实现的循环队列Q[0..m_1],队头、队尾指针分别为f,r,其判空的条件是 ,判满的条件是。 2. 循环链表的主要优点是。 3. 给定一个整数集合{3,5,6,9,12},画出其对应的一棵Huffman树。 4 双向循环链表中,在p所指的结点之后插入f所指的结点,其操作为。 5. 下列为朴素的模式匹配算法,请在算法的处填入正确的子句。

北航2011年硕士研究生入学考试数据结构与C语言试题与答案

2011 年硕士研究生入学考试 “数据结构与C语言程序设计”(科目代码:991)试题与答案 一、单项选择题(本题共20分,每小题各2分) 1.下列关于线性表的存储结构的叙述中,错误的是。 A.线性表的顺序存储结构中隐式地存储了数据元素之间的逻辑关系 B.线性表的顺序存储结构一定需要占用一片地址连续的存储空间 C.线性表的链式存储结构通过指针来反映数据元素之间的逻辑关系 D.线性表的链式存储结构占用的存储空间一定不连续 2.若front 和rear 分别表示链接队列的队头指针与队尾指针,则向队列中插入一个由p 指的新元素的过程是依次执行。 A.rear=p; front=p; B.front=p; rear=p; C.rear->link=p; rear=p; D.front->link=p; rear=p; 3.下列关于二叉树的叙述中,正确的是。 A.二叉树的度可以小于2 B.二叉树的度等于2 C.二叉树中至少有一个结点的度为2 D.二叉树中每一个结点的度都为2 4.若某二叉树有40个叶结点,则该二叉树的结点总数最少是。 A.78 B.79 C.80 D.81 5.若采用邻接矩阵存储一个有向图,且邻接矩阵主对角线以下元素均为0,则该有向图的拓扑序列。 A.存在且惟一B.存在但可能不惟一 C.不存在D.无法确定 6.下面关于AOE 网的叙述中,正确的是。 A.AOE 网是一个带权的连通图 B.AOE 网是一个带权的强连通图 C.AOE 网是一个带权的无回路的连通图 D.AOE 网是一个带权且无回路的有向图 7.下列关于线性表查找方法的叙述中,错误的是。 A.顺序查找法适合于采用顺序存储结构和链式存储结构的线性表的查找 B.对于相同元素,顺序查找法一定能够查找到表中首次出现的元素 C.对于相同元素,折半查找法一定能够查找到表中首次出现的元素 D.对于相同元素,折半查找法不一定能够查找到表中首次出现的元素 8.在二叉排序树中进行查找的平均时间效率主要与下列因素之一有关,该因素是。A.二叉排序树的深度B.二叉排序树中结点的个数的多少 C.被查找结点的度D.二叉排序树的存储结构 9.下列4 种排序方法中,每一趟排序结束时不一定能够确定一个元素排序最终位置的是。 A.插入排序B.快速排序 C.堆积(Heap)排序D.二路归并排序 2 10.下列4 种排序方法中,当待排序的序列中元素初始时已经按值有序,排序所花费的

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

模拟试卷一 一、单选题(每题 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的叶子生成一棵哈夫曼树,它的带权路径长度为( )。 A. 11 B.35 C. 19 D. 53 图一 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 D. 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),下面哪一个序列是从上述序列出发建 堆的结果?( )

数据结构(c语言版)期末考试复习试题

《数据结构与算法》(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

15秋北航《算法与数据结构》在线作业二100分答案

北航《算法与数据结构》在线作业二 单选题 一、单选题(共25 道试题,共100 分。) 1. 对顺序表上的插入、删除算法的时间复杂性分析来说,通常以()为标准操作 A. 条件判断 B. 结点移动 C. 算术表达式 D. 赋值语句 -----------------选择:B 2. 在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行()。 A. HL=p;p->next=HL; B. p->next=HL;HL=p; C. p->next=HL;p=HL; D. p->next=HL->next;HL->next=p; -----------------选择:B 3. 线性表是一个具有n个()的有限序列。 A. 表元素 B. 字符 C. 数据元素 D. 数据项 -----------------选择:C 4. 若给定的关键字集合为{20,15,14,18,21,36,40,10},一趟快速排序结束时,键值的排列为( )。 A. 10,15,14,18,20,36,40,21 B. 10,15,14,18,20,40,36,21 C. 10,15,14,20,18,40,36,21 D. 15,10,14,18,20,36,40,21 -----------------选择:A 5. 按照二叉树的定义,具有3个结点的二叉树有()种。 A. 3 B. 4 C. 5 D. 6 -----------------选择:C 6. 下列有关图遍历的说法中不正确的是()。 A. 连通图的深度优先搜索是个递增过程 B. 图的广度优先搜索中邻接点的寻找具有“先进先出”的特征 C. 非连通图不能用深度优先搜索法 D. 图的遍历要求每个顶点仅被访问一次 -----------------选择:C 7. Substr('DATA STRUCTURE',5,9)=()。 A. STRUCTURE' B. 'ASTUCTUR' C. 'DATA STRUCTRUE'

数据结构模拟试题9

一.选择题(每小题1分,共8分) 1.设有一个10阶的对称矩阵a,采用压缩存储方式,以行序为主存储,a[0][0]的存储地址为100,每个元素占1个地址空间,则a[3][2]的地址为()。 (A)102 (B)105 (C)106 (D)108 2.森林转换为二叉树后,从根结点开始一直沿着右子数下去,一共有4个结点,表明()。 (A)森林有4棵树(B)森林的最大深度为4 (C)森林的第一棵树有4层(D)森林有4个结点 3.在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为()。 (A)e (B)2e (C)n^2-e (D)n^2-2e 4.在内部排序中,排序时不稳定的有()。 (A)插入排序(B)冒泡排序(C)快速排序(D)归并排序 5.设一数列的顺序为1,2,3,4,5,通过栈结构不可能派成的顺序数列为()。 (A)3,2,5,4,1 (B)1,5,4,2,3 (C)2,4,3,5,1 (D)4,5,3,2,1 6.一个n条边的连通无向图,其顶点的个数至多为()。 (A)n-1(B)n(C)n+1(D)nlog2n 7.总共3层的完全二叉树,其结点数至少有()个。 (A)3 (B)4 (C)7 (D)8 8.已知某算法的执行时间为(n^3+n^2+n)log2(n+2),n为问题规模,则该算法的时间复杂度是()。 (A)O(n)(B)O(n^2) (C)O(log2n)(D)O(n^3log2n) 二.判断题(每题1分,共8分。正确的打√,错误的打×) 1.只要是算法,肯定可以在有限的时间内完成。() 2.无论是线性表还是树,每一个结点的直接前驱结点最多只有一个。() 3.不论是行优先还是列优先,二维数组的最后一个元素的存储位置是一样的。() 4.直接插入排序时,关键码的比较次数与记录的初始排列无关。() 5.二叉树的先序遍历不可能与中序遍历相同。() 6.任何一棵二叉树,不可能没有叶子结点。() 7.一个稀疏矩阵采用三元组法存储不可能是(5,3,7),(5,4,4),(5,3,5)。() 8.一个无序的顺序表不能采用折半查找法进行查找。()。

数据结构(C语言版)期末复习

数据结构(C语言版)期末复习汇总 第一章绪论 数据结构:是一门研究非数值计算程序设计中的操作对象,以及这些对象之间的关系和操作的学科。 数据结构分为:逻辑结构、物理结构、操作三部分 逻辑结构:集合、线性结构、树形结构、图(网)状结构 物理结构(存储结构):顺序存储结构、链式存储结构 算法:是为了解决某类问题而规定的一个有限长的操作序列。 算法五个特性:有穷性、确定性、可行性、输入、输出 评价算法优劣的基本标准(4个):正确性、可读性、健壮性、高效性及低存储量 语句频度的计算。 算法的时间复杂度: 常见有:O(1),O(n),O(n2),O(log2n),O(nlog2n),O(2n) 第二章线性表 线性表的定义和特点: 线性表:由n(n≥0)个数据特性相同的元素构成的有限序列。线性表中元素个数n(n≥0)定义为线性表的长度,n=0时称为空表。 非空线性表或线性结构,其特点: (1)存在唯一的一个被称作“第一个”的数据元素; (2)存在唯一的一个被称作“最有一个”的数据元素; (3)除第一个之外,结构中的每个数据元素均只有一个前驱; (4)除最后一个之外,结构中的每个数据元素均只有一个后继。 顺序表的插入:共计n个元素,在第i位插入,应移动(n-i+1)位元素。 顺序表的删除:共计n个元素,删除第i位,应移动(n-i)位元素。 线性表的两种存储方式:顺序存储、链式存储。 顺序存储 概念:以一组连续的存储空间存放线性表; 优点:逻辑相邻,物理相邻;可随机存取任一元素;存储空间使用紧凑; 缺点:插入、删除操作需要移动大量的元素;预先分配空间需按最大空间分配,利用不充分;表容量难以扩充; 操作:查找、插入、删除等 查找: ListSearch(SqlList L,ElemType x,int n) { int i; for (i=0;i

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

数据结构设计课程代码:7399 一、单项选择题(在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。每小题2分,共40分) 1、串的长度是()。 A、串中不同字母的个数 B、串中不同字符的个数 C、串中所含字符的个数,且大于0 D、串中所含字符的个数 2、若用数组S[1..n]作为两个栈S1和S2的共同存储结构,对任何一个栈,只有当S全满时才不能作入栈操作。为这两个栈分配空间的最佳方案是()。 A、S1的栈底位置为0,S2的栈底位置为n+1 B、S1的栈底位置为0,S2的栈底位置为n/2 C、S1的栈底位置为1,S2的栈底位置为n D、S1的栈底位置为1,S2的栈底位置为n/2 3、队列操作的原则是()。 A、先进先出 B、后进先出 C、只能进行插入 D、只能进行删除 4、有64个结点的完全二叉树的深度为()(根的层次为1)。 A、8 B、7 C、6 D、5 5、在有n个结点的二叉链表中,值为非空的链域的个数为()。

A、n-1 B、2n-1 C、n+1 D、2n+1 6、带权有向图G用邻接矩阵A存储,则顶点i的人度等于A中()。 A、第i行非∞的元素之和 B、第i列非∞的元素之和 C、第i行非∞且非0的元素个数 D、第i列非∞且非0的元素个数 7、在有n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为()。 A、0(n) B、0(log2n) C、0(nolg2n) D、0(n2) 8、若表R在排序前已按键值递增顺序排列,则()算法的比较次数最少。 A、直接插入排序 B、快速排序 C、归并排序 D、选择排序 9、下列排序算法中,()排序在某趟结束后不一定选出一个元素放到其最终的位置上。 A、选择 B、冒泡 C、归并 D、堆

北航 1999-2002 程序设计与数据结构考研试题

北航2002年程序设计与数据结构试题 一、简答题(10’) 1. 数据结构课程是计算机专业的基础课还是专业课,或者专业基础课?(2’) 2. 学习数据结构课程需要哪些课程作为它的基础(举例两门课程)?若没有这些知识,对学习数据 结构课程可能会产生哪些影响?请举例说明(不超过100字)。(4’) 3. 数据结构课程将为那些课程学习奠定必要的基础?请举例说明哪些课程(举例两门课程)用到了 数据结构课程的哪些知识(不超过100字)。(4’) 二、(5’) 请推导出结论:具有0n 个叶结点的哈夫曼树(Huffman )的分支总数为02(1)n -。 三、单项选择题(2’×15) 1. 线性链表中各链接点之间的地址________。 A. 必须连续 B. 部分地址必须连续 C. 不一定连续 D. 连续与否无所谓 2. 在非空线性链表中由p 所指的链接点后面插入一个由q 所致的链接点的过程是依次执行动作 ________。 A. link(q)←p; link(p)←q; B. link(q)←link(p); link(p)←q; C. link(q)←link(p); p ←q; D. link(p)←q; link(q)←p; 3. 在非空双向循环链表中由q 所指的那个链接点前插入一个p 指的链接点的动作对应的语句依次为 rlink(p)←q, llink(p)←llink(q), llink(q)←p, ________。(空白处为一条赋值语句) A. rlink(q)←p B. rlink(llink(q))←p C. rlink(llink(p))←p D. rlink(rlink(p))←p 4. 在初始为空的堆栈中依次插入元素f, e, d, c, b, a 以后,连续进行了三次删除操作,此时栈顶元素是 ________。 A. c B. d C. b D. e 5. 若某堆栈的输入序列为1, 2, 3, …, n ,输出序列的第1个元素为n ,则第i 个输出元素为________。 A. i B. n i - C. 1n i -+ D. 哪个元素无所谓 6. 求字符串T 在字符串S 中首次出现的位置的操作称为________。 A. 求串的长度 B. 求子串 C. 串的模式匹配 D. 串的连接 7. 若一棵度为7的树有8个度为1的结点,有7个度为2的结点,有6个度为3的结点,有5个度为 4的结点,有4个度为5的结点,有3个度为6的结点,有2个度为7的结点,该树一共有________个叶结点。 A. 35 B. 28 C. 77 D. 78 8. 若一棵二叉树有1001个结点,且无度为1的结点,则叶结点的个数为________。 A. 498 B. 499 C. 500 D. 501 9. 已知某完全二叉树采用顺序存储结构,结点数据信息的存放顺序依次为ABCDEFGH ,该完全二叉 树的后序遍历序列为________。

数据结构模拟试题一及答案汇编

学习-----好资料 数据结构模拟试题一 一、判断题(每小题1 分,共15分) 1.计算机程序处理的对象可分为数据和非数据两大类。 2.全体自然数按大小关系排成的序列是一个线性表。 3.在描述单向链表的结点类型时,必须首先描述数值字段,然后再描述指针字段。 4.顺序栈是一种规定了存储方法的栈。 5.树形结构中的每个结点都有一个前驱。 6.在任何一棵完全二叉树中,最多只有一个度为1的分支结点。 7.若某顶点是有向图的根,则该顶点的入度一定是零。 8.如果某图的邻接矩阵有全零的行,没有全零的列,则该图一定是有向图。 9.用一维数组表示矩阵可以节省存储空间。 10.广义表的长度与广义表中含有多少个原子元素有关。 11.分块查找的效率与线性表被分成多少块有关。 12.散列表的负载因子等于存入散列表中的结点个数。 13.在起泡排序过程中,某些元素可能会向相反的方向移动。 14.按某种逻辑关系组织起来的记录的集合称为逻辑记录。 15.索引非顺序文件的特点是索引表中的索引项不一定按关键字大小有序排列。 二、填空题(每空1分,共15分) 1.顺序表是一种_____________线性表。 2.若用Q[1]~Q[m]作为非循环顺序队列的存储空间,则对该队列最多只能执行___次插入操作。 3.栈和队列的区别在于________的不同。 4.在高度为h(h≥0)的二叉树中至少有___个结点,至多有___个结点。 5.若用二叉链表来存储具有m个叶子,n个分支结点的树,则二叉链表中有___个左指针域为空的结点,有___个右指针域为空的结点。 6.n个顶点的有根有向图中至少有___条边,至多有___条边。 7.10行20列矩阵若用行优先顺序表来表示,则矩阵中第8行第7列元素是顺序表中第___个元素。 8.在各元素查找概率相等的情况下,用顺序查找方法从含有12个元素的有序表中查找一个元素,元素间的平均比较次数是_____。 9.在归并两个长度为m的有序表时,排序码的比较次数至少是___次,至多是___次。 10.在高度为3的6阶B-树中,至少有___个关键字,至多有___个关键字。 三、选择题(每题2分,共30分) 1.计算机所处理的数据一般具有某种内在联系性,这是指________。 A.元素和元素之间存在某种关系B.数据和数据之间存在某种关系 C.元素内部具有某种结构D.数据项和数据项之间存在某种关系 2. 假设顺序表目前有4个元素,第i个元素放在R[i]中,1≤i≤4 。若把新插入元素存入R[6],则________。 A.会产生运行错误B.R[1]~R[6]不构成一个顺序表 C.顺序表的长度大于顺序表元素个数,会降低存储空间利用率 D.顺序表元素序号和数组元素下标不一致,会给使用带来麻烦 3. 设H是不带表头结点循环单向链表的表头指针,P是和H同类型的变量。当P指向链表最后

数据结构期末模拟试题05(有答案)

课程测试试题(卷) ----------------------以下为教师填写-------------------- I、命题院(部):数学与计算机科学学院 II、课程名称:数据结构 III、测试学期:20 -20 学年度第学期 IV、测试对象:学院专业级班 V、问卷页数(A4):页 VI、答卷页数(A4):页 VII、考试方式:闭卷(开卷、闭卷或课程小论文,请填写清楚) VIII、问卷内容:(请老师在出题时安排紧凑,填空题象征性的留出一点空格,学生将所有的答案做在答题纸上的规定位置,并写清楚大题、小题的题号) 一、单选题(每题 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时,需要执行的操作是 ________________;删除一个结点时,需要执行的操作是 ______________________________(假设栈不空而且无需回收被删除结点)。

北航10秋学期《算法与数据结构》模拟题一

北航10秋学期《算法与数据结构》模拟题一 一、单项选择题(本大题共15小题,每小题2分,共30分) 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、对一个由n个整数组成的序列,借助排序过程找出其中的最大值,希望比较次数和移动次数最少,应选用()方法 A.归并排序 B.直接插入排序 C.直接选择排序 D.快速排序。 7、在文件局部有序或文件长度较小的情况下,最佳的排序方法是() A.直接插入排序 B.冒泡排序 C.直接选择排序 D.归并排序 8、对于C语言的二维数组DataType A[m][n],每个数据元素占K个存储单元,二维数组中任意元素a[i,j] 的存储位置可由()式确定. A.Loc[i,j]=A[m,n]+[(n+1)*i+j]*k B.Loc[i,j]=loc[0,0]+[(m+n)*i+j]*k C.Loc[i,j]=loc[0,0]+[(n+1)*i+j]*k D.Loc[i,j]=[(n+1)*i+j]*k

相关文档
最新文档