02笔试题-数据结构部分

02笔试题-数据结构部分
02笔试题-数据结构部分

数据结构

1.采用折半搜索算法长度为n的有序表时,元素的平均搜索长度为()

A)O(n2)

B)O(nlog2n)

C)O(log2n)

D)O(n)

2.下面程序的时间复杂度为()

for(int i=0;i

{

for(int j=0;j

{

a[i][j] = i * j;

}

}

A)O(m2);

B)O(n2);

C)O(m*n);

D)O(m+n);

3.下列叙述中,正确的是()

A)线性表中的个元素在存储空间中的位置必须是连续的

B)线性表中的表头元素一定存储在其他元素的前面

C)线性表中的个元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面

D)线性表中的个元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的

4.已知二叉树后序遍历序列是edcfba,中序遍历序列deacbf,它的前序遍历序列是();

5.如果进栈序列为 e1,e2,e3,e4 ,则可能的出栈序列是();

6.对长度为n的字符串进行字符定位运算的时间复杂度为();

A)O(1)

B)O(根号n)

C)O(nlog2n)

D)O(n)

个顶点的连通图中边得条数至少为()

8.合并两个已经排好序的长度为n的Array,最坏情况下需要比较多少次()

A)2n

B)2n-1

C)2n+1

D)n2

9.深度为5的满二叉树中,叶子结点的个数为()

A)32

B)31

C)16

D)15

10.冒泡排序算法和快速排序算法的时间复杂度分别是什么

11.请简述数组和链表数据结构的特点及应用的场合

12.下列哪些数据结构最适合医疗仪器设备中的大型数据量的插入,查找()

A)数组

B)哈希表

C)红黑树/二叉平衡树

D)链表

13.下列哪些排序算法的平均时间复杂度是O(nlog2n)(),哪些是稳定的排序()

A)冒泡排序

B)希尔排序

C)快速排序

D)插入排序

E)堆排序

14.下列哪些说法是正确的:()

A)二分查找法在一个长度为1000的有序整数数组查找一个整数,比较的次数不超过100次

B)在二叉树中查找元素的时间复杂度为O(log2n);

C)对单向链表,可以使用冒泡排序;

D)对双向链表,可以使用快速排序;

15.已知某二叉树的后序遍历是DFBEGCA,中序遍历的顺序是DBFACEG,其前序遍历顺序是_________________

16.下列代码将两个有序链表结合为一个,链表中的元素的排列顺序为从小到大。请补充其中的空缺。

struct node

{

struct node *pnext;

int val;

};

struct node* splice(struct node* plhs,struct node* prsh)

{

if(______________)

return prhsprhs:plhs;

struct node* phead,*plast;

if(______________)

{

phead = plast = prhs;

plhs = plhs->pnext;

}

else

{

phead = plast = plhs;

prhs = prhs->pnext;

}

while(__________)

{

if(plhs->val < prhs->val)

{

plast->pnext = plhs;

plast = plhs;

plhs = plhs->pnext;

}

else

{

plast->pnext = prhs;

plast = prhs;

prhs = prhs->pnext;

}

}

plast->pnest = ___________________;

return ________________________;

}

17. 比较哈希表和平衡二叉树的特点,他们分别用在哪些场合.

18.一个栈的入栈序列是 A,B,C,D,E 则栈的不可能的输出序列是()

A) EDCBA

B)DECBA

C)DCEAB

D)ABCDE

19.在排序的方法中,关键码比较次数与记录地初始排列无关的是()

A) Shell

B)归并排序

C)直接排序

D)选择排序

20.以下反向遍历array数组的方法有什么错误

vector array;

(1);

(2);

(3);

for(vector::size_type i=()-1;i>=0;--i)

{

cout << array[i] << endl;

}

21.某火车站要通过一条栈道(先进后出)来调换进入车站的列车顺序,若进站的列车顺序为A,B,C,则下列哪个出栈顺序不可能

A)ABC

B)ACB

C)CAB

D)CBA

22.栈是一种是自能在某一端插入和删除的特殊线性表。他按照后进先出的原则存储数据,先进入的数据被压入栈底,最后进入的数据在栈顶,

若6元素进入栈S的顺序为出栈顺序为则S栈最小容量为

A) 3 B) 4 C) 5 D) 6

24.若完全二叉树的结点个数为2的N次方-1,则叶子结点个数为:

A) N-1

B)2*N

C)2(N-1)次方

D) 2N次方

25.排序算法是稳定是指:关键码相同的记录排序前后对应位置不发生改变,下面哪种排序算法是不稳定的

A)插入排序

B)冒泡排序

C)快速排序

D)归并排序

26.下列说法中错误的是:

A)插入排序某些情况下复杂度为O(N)。

B)排序二叉树元素查找的复杂度可能为O(N).

C)对于有序列表的排序最快的是快速排序。

D)在有序列表中通过二分查找的复杂度一定是O(nlog2n)。

27.栈和队列的共同特点是()

28.栈通常采用的两种存储结构是()

29.下列关于栈的叙述正确的是()

A)栈是非线性结构

B)栈是一种树状结构

C)栈具有先进先出的特征

D)栈有后进先出的特征

30.链表不具有的特点是()

A)不必事先估计存储空间

B)可随机访问任一元素

C)插入删除不需要移动元素

D)所需空间与线性表长度成正比

31.用链表表示线性表的优点是()

32.循环链表的主要优点是()

33.线性表L=(a1,a2,a3,……ai,……an),下列说法正确的是()

A)每个元素都有一个直接前件和直接后件

B)线性表中至少要有一个元素

C)表中诸元素的排列顺序必须是由小到大或由大到小

D)除第一个和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件

34.线性表若采用链式存储结构时,要求内存中可用存储单元的地址()

A)必须是连续的

B)部分地址必须是连续的

C)一定是不连续的

D)连续不连续都可以

35.树是结点的集合,它的根结点数目是()

36.在深度为5的满二叉树中,结点的个数为()

37.具有3个结点的二叉树有()种形态

38.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为()

39. 算法一般都可以用哪几种控制结构组合而成()

40. 下列叙述正确的是()

A)算法的执行效率与数据的存储结构无关

B)算法的空间复杂度是指算法程序中指令(或语句)的条数

C)算法的有穷性是指算法必须能在执行有限个步骤之后终止

D)算法的时间复杂度是指执行算法程序所需要的时间

41. 数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及()

42. 下列叙述中,错误的是()

A)数据的存储结构与数据处理的效率密切相关

B)数据的存储结构与数据处理的效率无关

C)数据的存储结构在计算机中所占的空间不一定是连续的

D)一种数据的逻辑结构可以有多种存储结构

46. 根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为()

43. 下列数据结构中,按先进后出原则组织数据的是()

A)线性链表

B)栈

C)循环链表

D)顺序表

44. 下列关于栈的叙述中正确的是()

A)在栈中只能插入数据

B)在栈中只能删除数据

C)栈是先进先出的线性表

D)栈是先进后出的线性表

45. 应用程序在执行过程中,需要通过打印机输出数据时,一般先形成一个打印作业,将其存放在硬盘中的一个指定()中,

当打印机空闲时,就会按先来先服务的方式从中取出待打印的作业进行打印。

46.下列关于队列的叙述中正确的是()

A)在队列中只能插入数据 B)在队列中只能删除数据

C)队列是先进先出的线性表 D)队列是先进后出的线性表

47.有一个C语言用来删除单链表的头元素的函数,请找出其中的问题并加以纠正。

void RemoveHead(node* head)

{

free(head)

head=head->next

}

48.设单链表中节点的结构为:

typedef struct node

{

Elemtype data; 何证明一个表是循环链表

52.如果一棵二叉树节点的前序序列是 A、B、C,后序序列是C、B、A,则该二叉树节点的中序序列是什么

A) 必为ABC B) 必为ACB C) 必为BCA D) 不能确定

53.什么是平衡二叉树

54.下面的程序是一快速排序问题,请填空。

#include

#include <>

void improveqsort(int *list,int m,int n)

{

int k,t,i,j; /*

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

printf("%3d",list[i]);*/

if(m

{

i=m;j=n+1;k=list[m];

while(i

{

for(i=i+1,i<++)

if(list[i]>=k)

break;

for(j=j-1,j>m,j--)

if(list[j]<=k)

break;

if(i

{t=list[i];list[i]=list[j];list[j]=t;}

}

t=list[m];list[m]=list[j];list[j]=t;

improveqsort( );

improveqsort( );

}

}

main()

{

int list[10];

int n=9, m=0,i;

printf("input 10 number:");

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

scanf("%d",&list[i]);

printf("\n");

improveqsort(list,m,n);

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

printf("%5d",list[i]);

printf("\n");

}

55.以下哪种排序属于稳定排序

A) 归并排序 B) 快速排序 C) 希尔排序 D) 堆排序

56.用二分法查找一个长度为10的、排好序的线性表,查找不成功时,最多需要比较多少次

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

57.下面那种排序法对 1234567 最快

A) quick sort B) bubble sort C) merge sort

58.解释一下什么是哈夫曼编码问题

59.假设执行语句Q的时间是O(1),则执行下列程序段的时间为()

for(int i = 1;i <= n;i++)

for(int j = i; j <= n; j++)

Q;

(n) (n2) (n*i) (n+1)

61. 一棵有124个叶结点的完全二叉树,最多有()个结点

A.247

63.下列排序算法中,在待排序数据有序的情况下,花费时间最多的是()

A.快速排序

B.希尔排序

C.冒泡排序

D.堆排序

64.有1000个无序的整数,希望使用最快的方式找出前50个最大的,最佳的选择是()

A.冒泡排序

B.基数排序

C.堆排序

D.快速排序

65.下列哪个不是用来解决哈希表冲突的开放地址法()

A.线性探测法

B.线性补偿探测法

C.拉链探测法

D.随机探测法

66.假设把整数关键码K散列到有N个槽的散列表,以下哪些散列函数是好的散列函数___。

A.h(k)= k/N;

B.h(k)=1;

C.h(k)=k mod N;

D.h(k)=(k + Random(N))mod N,random(N)返回一个0到N-1的整数

68.下面算法的时间复杂度是____.

int f(unsigned int n)

{

if(n==0||n==1)

return 1;

else return n*f(n-1);

}

(1)

(n)

(n^2)

(n!)

69. 对于一个具有n个顶点的无向图,若采用邻接表表示,则存放表头节点的数组大小为+1

+边数

70.考虑一个特殊的hash函数h,能将任一字符串hash成一个整数k,其概率为P(k)=2^(-k)。k=1,2…。对一个位未知大小的字符串集合S中的

每一个元素取hash值所组成的集合为h(S)。若h(S)中最大的元素max h(S)=10,那么S的大小的期望是___.

71.对于顺序存储的线性数组,访问结点和增加,删除结点的时间复杂度为____.

(n),O(n)

(n),O(1)

(1),O(n)

(1),O(1)

75.递归式的先序遍历一个n节点,深度为d的二叉树,需要栈空间的大小为____.

(n)

(d)

(logn)

D.(nlogn)

76.关于排序算法的以下说法,错误的是____

A.快速排序的平均时间复杂度为O(nlogn),最坏的时间复杂度为O(n2)

B. 堆排序的平均时间复杂度为O(nlogn),最坏的时间复杂度为O(nlogn)

C. 冒泡排序的平均时间复杂度为O(n2),最坏的时间复杂度为O(n2)

D. 归并排序的平均时间复杂度为O(nlogn),最坏的时间复杂度为O(n2)

77. 某二叉树的前序遍历序列为-+a*b-cd/ef,后序遍历序列为abcd-*+ef/-,问其中序遍历序列是_____.

78.某缓存系统采用LRU淘汰算法,假定缓存容量为4,并且初始为空,那么在顺序访问以下数据项的时候1,5,1,3,5,2,4,1,2出现缓存直接命中的次数是___________,最后缓存中即将准备淘汰的数据项是______.

79.有两个较长的单向链表a和b,为了找出结点node满足node in a并且node in b。请设计空间使用尽量小的算法。

80. 当存储数据量超出单节点数据管理能力的时候,可以采取的办法有数据库sharding 的解决方案,也就是按照一定规律把数据

分散存储在多个数据管理结点N中(节点编号为0,1,2…N-1).假设存储的数据是a,请完成为数据a计算存储节点的程序。

#define N 5

int hash(int element){

return element *61;

}

int shardingIndex(int a){

int p=hash(a);

________________________________

return p;

}

82.具有100个结点的二叉树中,若用二叉链表存储,其指针域部分用来指向结点的左右孩子,其余____个指针域为空

83.请实现一个快速排序算法,仅考虑被排序对象为整数的情况。

84. 一颗二叉树高度为h,所有节点的度或为0,或为2,则这颗二叉树最少有()结点

+1

+1

85.在百度或淘宝搜索时,每键入字符都会出现搜索建议,实现这类技术后台采用的数据结构是__________________.

86.设哈弗曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈弗曼树中总共有()个空指针域:

+1

87.后缀式ab+cd+/可用下面哪个表达式来表示:

+b/c+d

+b/(c+d)

+b+c/d

D.(a+b)/(c+d)

88.给定一个数组 11 3 15 7 6 2 13 9 19 4,每次操作可以交换不含重复数字的多对数,求至少需要多少次操作才能使数组递增有序,

比如交换(11,3)(15,7)(6,2)只算一次操作,而交换(11,3),(3,2)算两次操作

89.写一个函数,去除一个字符串中的所有重复字符,要求在原字符串上进行操作,不可以使用库函数,空间复杂度O(1)。

例如:输入字符串为”aabbbca“,则去重后的字符串为”abc“

90.如何判断一个二叉树是不是对称二叉树。(对称必须是左右子树对称,且对应节点的值也

相同)

91.某个车站呈狭长型,宽度只能容下一台车,并且只有一个出入口,已知某时刻该车站状态为空,从这一时刻开始的出入记录为:

“进,出,进,进,进,出,出,进,进,进,出,出”假设该车辆入栈的顺序为1,2,3……,则车辆的出栈顺序为()

A.1,2,3,4,5

B.1,2,4,5,7

C.1,4,3,7,6

D.1,4,3,7,2

92.将数组{8,23,4,16,77,-5,53,100}中的元素按从小到大的顺序排列,每次可以交换任意两个元素,最少需要交换()次

A. 4

B. 5

C. 6

D. 7

94.完全二叉树和满二叉树的联系和区别

95.以下序列中不符合堆定义的是()

A.(102,87,100,79,82,62,84,42,22,12,68)

B.(102,100,87,84,82,79,68,62,42,22,12)

C.(12,22,42,62,68,79,82,84,87,100,102)

D.(102,87,42,79,82,62,68,100,84,12,22)

96.使用cache命中率最高的替换算法是()

A.先进先出算法FIFO

B.随机算法RAND

C.先进后出算法FILO

D.替换最近最少使用的块算法LRU

97. 快速排序最坏情况下的时间复杂度是:( )

A. O( nlog(n))

B. O(n2)

C. O(log(n))

D. O(n)

98.一个文本文件,大约有10000行,每行一个词,要求统计出其中最频繁出现的前十个词(le表示单词的平均长度),给出时间复杂度分析。()

(O(n*le),O(n*lg10))

(O(n*le),O(n*lg10))

(n*le)

(n*lg10)

99. 关于数据结构和算法,以下说法正确的是()

A. 数据的逻辑结构与所使用的计算机无关

B. 数据的存储结构与数据处理的效率密切相关

C. 数据的存储结构在计算机中所占的空间不一定是连续的

D. 一种数据的逻辑结构只对应一种存储结构

E. 算法的执行效率与数据的存储结构无关

F. 算法的时间复杂度是指执行算法程序所需要的时间

G. 在单链表中,只要指出表中任何一个节点的位置,就可以从他出发依次访问到链表中其他所有节点

H. 在一个单链表中,已知q所指结点是p所指节点的前驱结点,若在p和q之间插入结点s,则执行,s->next=p;q->next =s;

I. 在一个单链表中,若删除p所指节点的后续结点,则执行p=p->next;p->next=p->next->next

J. 使用链表,可随机访问链表中的任何一个元素

100.调用printf函数可以分解为九个过程,请写出他们的排列顺序_________.

指令

出栈

C.函数参数压栈

D.收回局部变量空间

压栈

F.在栈上保留局部变量

G.函数参数出栈

指令

I.打印输出字符串

102.在以下几种数据结构中,在执行数量相当的查找,删除和插入操作时,综合性能最好的

数据结构是:

A. 双向链表

B. 分块链表

C. 穿线二叉树

D. 堆

103. 广告系统为了做地理位置定向,将IPV4分割为627672个区间,并标识了地理位置信息,区间之间无重叠,用二分查找将IP地址映射到地理位置信息,

请问在最坏的情况下,需要查找多少步

A.17

B.18

C.19

D.20

104.以入栈顺序作为输入,出栈作为输出,并以I代表入栈,O代表出栈,现将1,2,3,4顺序入栈,则栈操作序列IIIIOOOO后,输出4321;与输出1234相对应

的栈操作序列为IOIOIOIO.则若想得到输出为2314,则栈操作序列应为____.无法由栈操作序列而得到的输出有_____。

105. 设一组初始记录关键字序列为(20,18,22,16,30,19),则根据这些初始关键字序列建成的初始堆为______________.

106.线性有序表(a1,a2,a3,….a256)是从小到大排列的,对一个给定的值k,用二分法检索表中与K相等的元素,在查找不成功的情况下,最多需要检索______次。

编程

1 单链表

1:编程实现一个单链表的建立。

2:编程实现一个单链表的侧长。

3:编程实现一个单链表的打印。

4:编程实现一个单链表删除节点。

5:编程实现单链表的插入。

6:编程实现单链表的逆置。

2 双链表

1:编程实现双链表的建立。

2:编程实现双链表的侧长。

3:编程实现双链表的打印。

4:编程实现双链表删除节点。

5:编程实现双链表的插入。

1:编程实现队列的入队。

2:编程实现队列的出队。

3:编程实现队列的侧长。

4:编程实现队列的打印。

1. 一个学生的信息:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起,给出一个age,在这些链表中删除学生年龄等于age的学生信息。

2. 请用C或 C++ 写出一个冒泡排序程序,要求输入10个整数,输出排序结果。

3. 请用C或 C++ 写出一个shell排序程序,要求输入10个整数,输出排序结果。

4. 链表

struct student

{

int m_Num; 造一个有20名学生的单向链表。按顺序每名学生的分数值为,1,2,3,5,8,13...

2).求出他们的平均分。

5. 请实现一个快速排序的算法。仅考虑排序的对象为整数的情况。

6. 计算a的n次方是许多加密算法的基本操作,蛮力计算方法的时间复杂度是O(n),请设计一个时间复杂度小于O(n)的算法,(假设计算结果可以使用long型存储)

7.给定一个数组a[n],我们希望构造数组b[n],其中 b[i] = a[0]*a[1]...a[n-1]/a[i].在构造过程不允许使用除法。

1.要求O(1)空间复杂度和O(n)时间复杂度。

2.除遍历计数器与a[n]b[n]外,不可使用新的变量(包括栈临时变量,堆空间和全局静态变量等);

8.给定一个如下输入格式的字符串,(1,(2,3),(4,(5,6),7))括号内的元素可以是数字,也可以是另一个括号。请实现一个算法消除嵌套的括号,

比如把上面的表达式变成:(1,2,3,4,5,6,7),如果表达式有误请报错。

9.相似度计算用于衡量对象之间的相似程度,在数据挖掘,自然语言处理中是一个基础性计算。在广告检索服务中往往也会判断网民检索Query和广告Adword的

主题相似度。假设Query或者Adword的主题属性定义为一个长度为10000的浮点数组Pr[10000](称之为主题概率数组),其中Pr[i]表示Query或者Adword属于主

题ID为i的概率,而Query和Adword 的相似度简化定义为两者主题概率数组的内积:即sim(Query,Adword) = sum(QueryPr[i]*AdwordPr[i]) (0<=i<=10000)。在

实际应用场景中,由于大多数主题概率都为0,所以主题概率数组往往比较稀疏,在实现时会以一个紧凑型数组topic_info_t[]的方式保存,其中100<=数组大小

<=1000,并按照topic_id递增排列,0<=topic_id<10000,0

struct topic_info_t

{

int topic_id;

float topic_pr;

};

现在给出Query的topic_info_t数组和N(N>=5000)个Adwords的topic_info_t数组,现要求出Query与Adwords的相似度最大值。即max(sim(Query,Adword[i]))

(0<=i

float max_sim(const vector&query_topic_info,

const vectoradwords_topic_info[],

int adwords_number);

编写代码求时间复杂度最低的算法,并给出时间复杂度分析。

10. 给一个单词a,如果通过交换单词中字母的顺序可以得到另外的单词b,那么b是a的兄弟单词,比如单词army和mary互为兄弟单词。

现在要给出一种解决方案,对于用户输入的单词,根据给定的字典找出输入单词有哪些兄弟单词。请具体说明数据结构和查询流程,要求时间和空间效率尽可能

的高

11. 系统中维护了若干数据项,我们对数据项的分类可以分为三级,首先我们按照一级分类方法将数据项分为A,B,C……若干类别,每一个级分类方法产生的类

别又可以按照二级分类方法分为a,b,c…若干子类别,同样,二级分类方法产生的类别又可按照三级分类方法分为i,ii,iii…若干子类别,每个三级分类方法产生

的子类别中的数据项从1开始的编号。我们需要对每个数据项输出日志,日志的形式是key-value。写入日志的时候,用户提供三级类别名称,数据项编号和日

志的key,共五个key值,例如write(A,a,i,1,key1),获取日志的时候,用户提供三级类别名称,数据项编号,共四个key值,返回对应的所有key-value,

例如get_log(A,a,i,1),请描述一种数据结构来存储这些日志,并计算出写入日志和读出日志的时间复杂度

12.链表

struct student

{

int m_Num;泡排序(写出具体算法):答题需注意程序的有效性,可行性,健壮性并体现严格,规范的过程。

14.单链表反序(写出具体算法):答题需注意程序的有效性,可行性,健壮性并体现严格,规范的过程。

15.请写一个函数,功能是把一段字符串倒序:答题需注意程序的有效性,可行性,健壮性并体现严格,规范的过程。

16.设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),空间复杂度为O(1)。

17.一个单向链表,不知道头结点,一个指针指向其中一个节点,问如何删除这个指针指向的结点.

18.编程得到以下算式的结果(要求计算的效率最高)

算式:1-2+3-4+5-6......N

19.请写出一个程序,把一段字符串里面的某个字符(可能出现几次)过滤掉,比如“abcdefg”过滤掉e变成“abcdfg”。

要求算法复杂度O(n),空间复杂度O(1)(10)。

20.编写一个按单词反转字符串的函数,如给定输入 here is 后变成 is here

21.列出你知道的排序算法,并使用其中的任意一种排序算法实现int *sort(int array[],int length),array是一个待排整形数组,length是数组长度,

将排序结果以整型指针的形式输出。

22. 编写一个函数,计算两个正整数的最小公倍数,要求用辗转相除法。

23.已知两个链表List1和List2,均为增序,请把他们合并成一个链表,要求仍为增序,请用递归实现。

24.编程求10000以内的素数,要求对算法进行适当优化。

25.(八皇后问题)在一个8*8的国际象棋棋盘上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行,同一列或同一斜线上。

请编程求出所有可行的摆法,要求用回溯法写出程序。

26.给定一个单链表和一个整数K,要求每隔K个元素翻转链表:

struct node

{

int key;

struct node * next;

};

typedef node *List;

实现该函数:int *kReverse(List *Head,int k)

比如:原始链表为:1->2->3->4->5->6

k=2翻转为:2->1->4->3->6->5

k=3翻转为:3->2->1->6->5->4

k=4翻转为:4->3->2->1->5->6

27.对于一个m*n的int矩阵,其每行自左向右是升序排列的,其每列自上向下是升序排列的,现需要在其中查找整数elem,找到时返回elem所在位置。

请1)先写出思路;2)自行定义函数接口然后编程实现,编程语言不限。

28.下面程序段的时间复杂度为()

for(int i=0;i

{

for(int j =0 ;j

{

a[i][j]=i*j;

}

}

数据结构考试试题及答案

数据结构 一、单选题 1. 计算机算法指的是(b )。 A.程序B.问题求解步骤的描述C.调度方法D.排序方法 2. 以下数据结构中,(a )个是非线性数据结构。 A.树B.字符串C.队D.栈 3. 对于顺序存储的线性表,访问元素和插入元素的时间复杂度分别为:(c )。 A.O(n) O(n) B.O(n) O(1) C.O(1) O(n) D.O(1) O(1) 4. 在单链表指针为p的结点之后插入指针为s的结点,正确的操作是(b )。 A.p->next=s;s->next=p->next B.s->next=p->next; p->next=s C.p->next=s;p->next=s->next D.p->next=s->next; p->next=s 5. n个顶点的有向图中,含有向边的数目最多为( d ) A.n-1 B.n C.n(n-1)/2 D.n(n-1) 6. 循环队列存储在数组A[0..m]中,则入队时的操作为( d ) A.rear=rear+1 B.rear=(rear+1)mod(m-1) C.rear=(rear+1)mod m D.rear=(rear+1)mod(m+1) 7. 字符串?ababaabab?的next函数为(d ) A.011232232 B.012341234 C.011122334 D. 011234234 8. 若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数为( b )A.9 B.11 C.15 D.不确定 9. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当以列为主序存放时,元素A[5,8]的首地址为( b )。A.BA+141 B.BA+180 C.BA+222 D.BA+225 10. n个顶点的带权无向连通图的最小生成树包含(b )个顶点 A.n-1 B.n C.n/2 D.n+1 11.有关二叉树的下列说法正确的是( b ) A.二叉树的度为2 B.一棵二叉树的度可以小于2 C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为2 12.关键路径是AOE网中( a )。 A.从源点到汇点的最长路径B.从源点到汇点的最短路径 C.最长回路 D.最短路径(从源点到汇点的所有路径中,经过弧的数目最多的路径) 13.若查找每个记录的概率相等,则在具有n个记录的连续文件中采用顺序查找查找一个记录,其平均查找长度ASL为(c)。 A.(n-1)/2 B.n/2 C.(n+1)/2 D.n 14.就平均性能而言,目前最好的内部排序方法是(d ) A.冒泡排序B.希尔排序C.堆排序D.快速排序 15.已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是(d )A.head(tail(LS)) B.tail (head (LS) C.head(tail(head(tail(LS)))) D.head(tail(tail (head (LS)))) 17.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:( a ) A. 访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n) B. 在第i个结点后插入一个新结点(1≤i≤n)

数据结构试题及答案(免费)

一、单选题(每题 2 分,共20分) 1. 1.对一个算法的评价,不包括如下(B )方面的内容。 A.健壮性和可读性B.并行性C.正确性D.时空复杂度 2. 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. 3.对线性表,在下列哪种情况下应当采用链表表示?( ) 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网是一种()。 A.有向图B.无向图C.无向无环图D.有向无环图 6. 6.采用开放定址法处理散列表的冲突时,其平均查找长度()。 A.低于链接法处理冲突 B. 高于链接法处理冲突 C.与链接法处理冲突相同D.高于二分查找 7.7.若需要利用形参直接访问实参时,应将形参变量说明为()参数。 A.值B.函数C.指针D.引用 8.8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具 有相同的()。 A.行号B.列号C.元素值D.非零元素个数 9.9.快速排序在最坏情况下的时间复杂度为()。 A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2) 10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。 A. O(n) B. O(1) C. O(log2n) D. O(n2) 二、二、运算题(每题 6 分,共24分) 1. 1.数据结构是指数据及其相互之间的______________。当结点之间存在M 对N(M:N)的联系时,称这种结构为_____________________。 2. 2.队列的插入操作是在队列的___尾______进行,删除操作是在队列的 ____首______进行。 3. 3.当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则 表示栈满的条件是___top==0___(要超出才为满)_______________。 4. 4.对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度 为_________,在表尾插入元素的时间复杂度为____________。

数据结构常见笔试题

1.栈和队列的共同特点是(只允许在端点处插入和删除元素) 2.栈通常采用的两种存储结构是(线性存储结构和链表存储结构) 3.链表不具有的特点是(B) A.不必事先估计存储空间 B.可随机访问任一元素 C.插入删除不需要移动元素 D.所需空间与线性表长度成正比 4.用链表表示线性表的优点是(便于插入和删除操作) 5.在单链表中,增加头结点的目的是(方便运算的实现) 6.循环链表的主要优点是(从表中任一结点出发都能访问到整个链表) 7.线性表若采用链式存储结构时,要求内存中可用存储单元的地址(D) A.必须是连续的 B.部分地址必须是连续的 C.一定是不连续的 D.连续不连续都可以 8.线性表的顺序存储结构和线性表的链式存储结构分别是(随机存取的存储结构、顺序存取的存储结构) 9.具有3个结点的二叉树有(5种形态) 10.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的 结点数为(13)(n 0 = n 2 +1) 11.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是(cedba) 12.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是(gdbehfca) 13.数据库保护分为:安全性控制、完整性控制、并发性控制和数据的恢复。

1.在计算机中,算法是指(解题方案的准确而完整的描述) 2.算法一般都可以用哪几种控制结构组合而成(顺序、选择、循环) 3.算法的时间复杂度是指(算法执行过程中所需要的基本运算次数) 4.算法的空间复杂度是指(执行过程中所需要的存储空间) 5.算法分析的目的是(分析算法的效率以求改进) 6.下列叙述正确的是(C) A.算法的执行效率与数据的存储结构无关 B.算法的空间复杂度是指算法程序中指令(或语句)的条数 C.算法的有穷性是指算法必须能在执行有限个步骤之后终止 D.算法的时间复杂度是指执行算法程序所需要的时间 7.数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及(数据的存储结构) 8.数据结构中,与所使用的计算机无关的是数据的(C) A.存储结构 B.物理结构 C.逻辑结构 D.物理和存储结构 9.下列叙述中,错误的是(B) A.数据的存储结构与数据处理的效率密切相关 B.数据的存储结构与数据处理的效率无关 C.数据的存储结构在计算机中所占的空间不一定是连续的 D.一种数据的逻辑结构可以有多种存储结构 10.数据的存储结构是指(数据的逻辑结构在计算机中的表示) 11.数据的逻辑结构是指(反映数据元素之间逻辑关系的数据结构) 12.根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为(线性结构和非线性结构) 13.下列数据结构具有记忆功能的是(C) A.队列 B.循环队列 C.栈 D.顺序表 14.递归算法一般需要利用(栈)实现。 15.由两个栈共享一个存储空间的好处是(节省存储空间,降低上溢发生的机率)

数据结构试题库答案

数据结构试题及答案 一、单项选择题 (1)一个算法应该就是()。 A)程序???B)问题求解步骤得描述 C)要满足五个基本属性??D) A与C (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)下列程序得时间复杂度为() i=0;s=0; while(s

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

数据结构期末考试题及答案 、选择题 1.在数据结构中, 从逻辑上能够把数据结构分为 A. 动态结构和静态结构 B .紧凑结构和非紧凑结构 C.线性结构和非线性结构 D .内部结构和外部结构 2. 数据结构在计算机内存中的表示是指 A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系 3. 在数据结构中, 与所使用的计算机无关的是数据的 结构。 A.逻辑 B.存储 C.逻辑和存储 D.物理 4. 在存储数据时, 一般不但要存储各数据元素的值, 而且还 要存储C A. 数据的处理方法 B. 数据元素的类型 C.数据元素之间的关系 D.数据的存储方法 5.在决定选取何种存储结构时般不考虑A 。 A. 各结点的值如何 B. 结点个数的多少 C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。 6.以下说法正确的是 A. 数据项是数据的基本单位

B. 数据元素是数据的最小单位 C. 数据结构是带结构的数据项的集合 D. —些表面上很不相同的数据能够有相同的逻辑结构7.算法分析的目的是C , 算法分析的两个主要方面是A 。 (1) A.找出数据结构的合理性 和输出的关系 C. 分析算法的效率以求改进 档性 ( 2) A .空间复杂度和时间复杂度 C. 可读性和文档性 性 8. 下面程序段的时间复杂度是 s = 0; for( I = 0; i v n; i + + ) for( j = 0; j v n; j ++ ) s +二B[i][j]; sum = s ; 9. 下面程序段的时间复杂度是 for( i = 0; i v n; i + + ) for( j = 0; j v m; j ++ ) B .研究算法中的输入 C .分析算法的易读性和文 B .正确性和简明性D .数据复杂性和程序复杂 O( n2) 。 O( n*m) 。

《数据结构》题库及答案

《数据结构》题库及答案 一、选择题 1.线性表的顺序存储结构是一种 的存储结构,线性表的链式存储结构是一种 的存储结构。 a. 随机存储; b.顺序存储; c. 索引存取; d. HASH 存取 2.一个栈的入栈序列是a,b,c,d,e ,则栈的不可能的输出序列是 。 a. edcba; b. decba; c. dceab; d.abcde 3.一个队列的入队序列是1,2,3,4,则队列的输出序列是 。 a. 4,3,2,1; b. 1,2,3,4; c. 1,4,3,2; d.3,2,4,1 4.在一个单链表中,已知p 结点是q 结点的直接前驱结点,若在p 和q 之间插入结点s ,则执行的操作是 。 a. s->nxet=p->next; p->next=s; b. p->next=s->next; s->next=p; c. q->next=s; s->next=p; d. p->next=s; s->next=q; 5.设有两个串p,q ,求q 在p 中首次出现的位置的运算称作 。 a.联接 b.模式匹配 c.求子串 d.求串长 6.二维数组M 的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i 的范围从0到8,列下标j 的范围从1到10,则存放M 至少需要 个字节。 a. 90 b.180 c.240 d.540 7.在线索二叉树中,结点p 没有左子树的充要条件是 。 a. p->lch==NULL b. p->ltag==1 c. p->ltag==1且p->lch=NULL d. 以上都不对 8.在栈操作中,输入序列为(A ,B ,C ,D ),不可能得到的输出序列为:______ A 、(A , B , C , D ) B 、(D ,C ,B ,A ) C 、(A ,C ,D ,B ) D 、(C ,A ,B ,D ) 9.已知某二叉树的后序序列是dabec ,中序序列是debac ,则它的先序序列是 。 A 、acbed B 、decab C 、deabc D 、cedba 10.设矩阵A 是一个对称矩阵,为了节省存储空间,将其下三角部分(见下图)按行序存放在一维数组B[1..n(n-1)/2]中,对任一上三角部分元素)(j i a ij ,在一维数组B 的存放位置是 。

经典数据结构面试题(含答案)

.栈通常采用的两种存储结构是______________________ .用链表表示线性表的优点是_______________________ 8.在单链表中,增加头结点的目的是___________________ 9.循环链表的主要优点是________________________- 12.线性表的顺序存储结构和线性表的链式存储结构分别是__________________________ 13.树是结点的集合,它的根结点数目是_____________________ 14.在深度为5的满二叉树中,叶子结点的个数为_______________ 15.具有3个结点的二叉树有(_____________________ 16.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为____________________ 17.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是____________________________ 18.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为______________________ 19.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是_______________________ 20.数据库保护分为:安全性控制、完整性控制、并发性控制和数据的恢复。 在计算机中,算法是指_______________________ 算法一般都可以用哪几种控制结构组合而成_____________________ .算法的时间复杂度是指______________________ 5. 算法的空间复杂度是指__________________________ 6. 算法分析的目的是__________________________

数据结构试题及答案(10套最新)

单选题(每题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; 都具有相同的(A )。 A.行号 B .列号 C .元素值 D .非零元素个数 9. 快速排序在最坏情况下的时间复杂度为(D )。 A. O(log 2n) B . O(nlog 2n) C . 0(n) D 10.10. 从二叉搜索树中查找一个元素时,其时间复杂度大致 为 A. O(n) B. O(1) C. O(log 2 n) D. O(n 二、 运算题(每题6分,共24分) 1. 1. 数据结构是指数据及其相互之间的 _________________ 。当结点之 间存在M 对N (M N)的联系时,称这种结构为 __________________________ 。 2. 2. 队列的插入操作是在队列的_ _尾 ________ 行,删除操作是在队 列的 ____ 首 _____ 行。 3. 3. 当用长度为N 的数组顺序存储一个栈时,假定用top==N 表示栈 C. p->next=HL; p=HL; 3. 3. A. C. D. HL=p; p-> next=HL; 对线性表,在下列哪种情况下应当采用链表表示? 经常需要随机地存取元素 B. 表中元素需要占据一片连续的存储空间 一个栈的输入序列为1 2 3, 4. 4. 列的是(C ) A. 2 3 1 C. 3 1 2 AOV 网 是一种(D ) 有向 图 B .无向图 (B ) 经常需要进行插入和删除操作 D.表中元素的个数不变 则下列序列中不可能是栈的输出序 B. 3 2 1 5. 5. 6. .无向无环图 D .有向无环图 采用 开放定址法处理散列表的冲突时,其平均查找长度( B. 高于链接法处理冲突 D .高于二分查找 7. 8. 6. A.低于链接法处理冲突 .与链接法处理冲突相同 7. 参数。 A.值 8. B)。 若需要利用形参直接访问实参时,应将形参变量说明为( B .函数 C .指针 D .引用 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点 9. .0(n 2) (C )。 2 )

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

2017年数据结构期末考试题及答案 一、选择题(共计50分,每题2分,共25题) 1 ?在数据结构中,从逻辑上可以把数据结构分为 C 。 A. 动态结构和静态结构B?紧凑结构和非紧凑结构 C.线性结构和非线性结构 D .内部结构和外部结构 2?数据结构在计算机内存中的表示是指 A ° A. 数据的存储结构 B.数据结构 C.数据的逻辑结构 D .数据元 素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。 A. 逻辑B?存储 C.逻辑和存储 D.物理 4 .在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C ° A.数据的处理方法B?数据元素的类型 C.数据元素之间的关系 D.数据的存储方法 5. 在决定选取何种存储结构时,一般不考虑 A ° A.各结点的值如何B?结点个数的多少 C?对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。 6. 以下说法正确的是D ° A. 数据项是数据的基本单位 B. 数据元素是数据的最小单位 C. 数据结构是带结构的数据项的集合 D. —些表面上很不相同的数据可以有相同的逻辑结构 7. 在以下的叙述中,正确的是B ° A. 线性表的顺序存储结构优于链表存储结构 B. 二维数组是其数据元素为线性表的线性表 C?栈的操作方式是先进先出 D.队列的操作方式是先进后出

8. 通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 A. 数据元素具有同一特点 B. 不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C. 每个数据元素都一样 D. 数据元素所包含的数据项的个数要相等 9 ?链表不具备的特点是 A 。 A.可随机访问任一结点 B.插入删除不需要移动元素 C?不必事先估计存储空间 D.所需空间与其长度成正比 10. 若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一 个结点,则采用 D 存储方式最节省运算时间。 A.单链表B ?给出表头指针的单循环链表 C.双链表D ?带头结点 的双循环链表 11. 需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。 A.单链表B .静态链表 C.线性链表 D .顺序存储结构 12 .非空的循环单链表head的尾结点(由p所指向)满足C 。 A. p—>next 一NULL B. p — NULL C. p—>next == head D. p = = head 13 .在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。 A .p—> prior-> prior=s B .p—> prior-> n ext=s C.s —> prior—> n ext = s D.s —> prior—> prior = s 14 .栈和队列的共同点是C 。 A.都是先进后出 B .都是先进先出 C.只允许在端点处插入和删除元素 D .没有共同点

经典数据结构面试题(含答案)

栈和队列的共同特点是__________________________ .栈通常采用的两种存储结构是______________________ .用链表表示线性表的优点是_______________________ 8.在单链表中,增加头结点的目的是___________________ 9.循环链表的主要优点是________________________- 12.线性表的顺序存储结构和线性表的链式存储结构分别是 __________________________ 13.树是结点的集合,它的根结点数目是_____________________ 14.在深度为5的满二叉树中,叶子结点的个数为_______________ 15.具有3个结点的二叉树有(_____________________ 16.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为____________________ 17.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是 ____________________________ 18.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为______________________ 19.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是_______________________ 20.数据库保护分为:安全性控制、完整性控制、并发性控制和数据的恢复。 在计算机中,算法是指_______________________ 算法一般都可以用哪几种控制结构组合而成_____________________ .算法的时间复杂度是指______________________ 5. 算法的空间复杂度是指__________________________ 6. 算法分析的目的是__________________________

算法与数据结构题库与答案

一、单项选择题 1 某算法的时间复杂度是O(n 2 ) ,表明该算法()。 A 问题规模是n2 B 问题规模与n2成正比 C 执行时间等于n2 D 执行时间与n2成正比 2、关于数据结构的描述,不正确的是()。 A数据结构相同,对应的存储结构也相同。 B数据结构涉及数据的逻辑结构、存储结构和施加其上的操作等三个方面。 C数据结构操作的实现与存储结构有关。 D定义逻辑结构时可不考虑存储结构。 3、按排序策略分来,起泡排序属于()。 A插入排序B选择排序C交换排序D归并排序 4、利用双向链表作线性表的存储结构的优点是()。 A便于进行插入和删除的操作 B 提高按关系查找数据元素的速度 C节省空间D便于销毁结构释放空间 5、一个队列的进队顺序为1,2,3,4,则该队列可能的输出序列是()。 A 1,2,3,4 B 1,3,2,4 C 1,4,2,3 D 4,3,2,1 6、 Dijkstra算法是按()方法求出图中从某顶点到其余顶点最短路径的。 A按长度递减的顺序求出图的某顶点到其余顶点的最短路径 B按长度递增的顺序求出图的某顶点到其余顶点的最短路径 C通过深度优先遍历求出图中从某顶点到其余顶点的所有路径 D通过广度优先遍历求出图的某顶点到其余顶点的最短路径 7、字符串可定义为n( n≥ 0)个字符的有限()。其中,n是字符串的长度,表明字符串中字符的个数。 A集合B数列C序列D聚合 8、在二维数组A[9][10]中,每个数组元素占用 3 个存储单元,从首地址SA 开始按行连续存放。在这种情况下,元素A[8][5]的起始地址为()。 A SA+141 B SA+144 C SA+222 D SA+255 9、已知广义表为L(A(u,v,(x,y),z),C(m,(),(k,l,n),(())),((())),(e,(f,g),h)),则它的长度是()。 A2B3C4D5 10.对于具有n(n>1)个顶点的强连通图,其有向边条数至少有_____。 A. n+1 B. n C. n-1 D. n-2 11.一个递归算法必须包括 __________ 。 A. 递归部分 B . 结束条件和递归部分 C. 迭代部分 D. 结束条件和迭代部分 12.从逻辑上看可以把数据结构分为__________两大类。 A.动态结构、静态结构B.顺序结构、链式结构 C.线性结构、非线性结构D.初等结构、构造型结构 13、若在长度为n 的顺序表的表尾插入一个新元素的渐进时间复杂度为()。 A O(n) B O(1) C O(n 2) D O(log 2n) 14.采用顺序搜素方式搜索长度为 n 的线性表时,在等概率情况下,搜索成功时的平均搜索 长度为 __________。 A. n B. n/2 C . (n+1)/2 D. (n-1)/2 15、非空的循环单链表first的链尾结点(由p 所指向)满足()。 A p->link==NULL; B P==NULL;

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

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

————————————————————————————————作者:————————————————————————————————日期:

2012年数据结构期末考试题及答案 一、选择题 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<n;i++) for(j=0;j<n;j++) s +=B[i][j]; sum =s ; 9.下面程序段的时间复杂度是O(n*m)。 for(i =0;i<n;i++) for(j=0;j<m;j++) A[i][j] =0; 10.下面程序段的时间复杂度是O(log3n)。 i =0; while(i<=n) i =i * 3; 11.在以下的叙述中,正确的是B。 A.线性表的顺序存储结构优于链表存储结构 B.二维数组是其数据元素为线性表的线性表 C.栈的操作方式是先进先出 D.队列的操作方式是先进后出 12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着B 。 A.数据元素具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等 13.链表不具备的特点是A。 A.可随机访问任一结点B.插入删除不需要移动元素 C.不必事先估计存储空间D.所需空间与其长度成正比 14.不带头结点的单链表head为空的判定条件是A。

数据结构试题(含答案)

一.是非题 (正确的打“√”,错误的打“×”。) 1. 数据结构可用三元式表示(D,S,P)。其中:D是数据对象,S是D上的关系, P是对D的基本操作集。× 2. 线性表的链式存储结构具有可直接存取表中任一元素的优点。× 3. 字符串是数据对象特定的线性表。 4. 二叉树是一棵结点的度最大为二的树。× 5.邻接多重表可以用以表示无向图,也可用以表示有向图。× 6.可从任意有向图中得到关于所有顶点的拓扑次序。× 7.一棵无向连通图的生成树是其极大的连通子图。× 8.二叉排序树的查找长度至多为log2n。× 9.对于一棵m阶的B-树.树中每个结点至多有m 个关键字。除根之外的所有非终端结点至少有┌m/2┐个关键字。× 10.对于目前所知的排序方法,快速排序具有最好的平均性能。 11. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。× 12. 二维数组是其数据元素为线性表的线性表。 13. 连通图G的生成树是一个包含G的所有n个顶点和n-1条边的子图。× 14. 折半查找不适用于有序链表的查找。 15. 完全二叉树必定是平衡二叉树。 16. 中序线索二叉树的优点是便于在中序下查找直接前驱结点和直接后继结点。 17. 队列是与线性表完全不同的一种数据结构。× 18. 平均查找长度与记录的查找概率有关。 19. 二叉树中每个结点有两个子结点,而对一般的树,则无此限制,所以,二叉树是树的特殊情形。× 20. 算法的时间复杂性越好,可读性就越差;反之,算法的可读性越好,则时间复杂性就越差。× 二.选择题 1. 若对编号为1,2,3的列车车厢依次通过扳道栈进行调度,不能得到 ( e ) 的序列。 a:1,2,3 b:1,3,2 c:2,1,3 d:2,3,1 e:3,1,2 f:3,2,1 2. 递归程序可借助于( b )转化为非递归程序。 a:线性表 b: 栈 c:队列 d:数组 3. 在下列数据结构中( c )具有先进先出(FIFO)特性, ( b )具有先进后出(FILO)特性。 a:线性表 b:栈 c:队列 d:广义表 4. 对字符串s=’data-structure’ 执行操作replace(s,substring(s,6,8),’bas’)

数据结构期中笔试题答案

《数据结构》期中考试题答案 一、填空题(20分,每题2分) 1.逻辑结构、存储结构 2.便于插入和删除操作 3.方便运算的实现 4.算法执行过程中所需要的基本运算次数 5.存储结构 6.q.next=p.next ; p.next=q 7.递归算法 8.抽象类或接口 二、选择题(30分,每题2分) AACBB BDDCB AACAC 三、问答题(50分,每题10分) 1.什么是栈和队列?两者有何异同? 答:栈和队列都属于线性表结构,它们是两种特殊的线性表,栈的插入和删除操作都在线性表的一端进行,所以栈的特点是“后进先出”;而队列的插入和删除操作分别在线性表的两端进行,所以队列的特点是“先进先出”。 2.采用顺序存储结构的栈和队列,在进行插入、删除操作时需要移动数据元素吗?为什么? 答:采用顺序存储结构的栈和队列,在进行插入、删除操作时不需要移动数据元素,因为栈和队列均不能进行中间插入、删除操作。 3.什么是队列的假溢出?为什么顺序存储结构队列会出现假溢出?怎样解决队列的假溢出问题?链式存储结构队列会出现假溢出吗? 答:顺序队列,当入队的元素个数(包括已出队元素)超过数组容量时,队列尾下标越界,数据溢出。此时,由于之前已有若干元素出队,数组前部已空出许多存储单元,所以,这种溢出并不是因存储空间不够而产生的,称之为假溢出。 顺序队列之所以会产生假溢出现象,是因为顺序队列的存储单元没有重复使用机制。解决的办法是将顺序队列设计成循环结构。 链式存储结构队列不会出现假溢出。因为每次元素入队,都要申请新结点,数据不会溢出。 4.答案:(1) (a2, a4, …, ) (2)将单链表中偶数结点位置的元素值写入顺序表list 5.数据的存储结构有哪两种,各有什么特点? 答:数据存储结构的基本形式有两种:顺序存储结构和链式存储结构。 顺序存储结构使用一组连续的内存单元依次存放数据元素,元素在内存中的物理存储次序与它们的逻辑次序相同。 链式存储结构使用若干地址分散的存储单元存储数据元素,逻辑上相邻的数据元素在物理位置上不一定相邻,数据元素间的关系需要采用附加信息特别指定。

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

2011-2012学年第一学期期末考查 《数据结构》试卷 (答案一律写在答题纸上,在本试卷上做答无效) 一、选择(每题1分,共10分) 1.长度为n的线性表采用顺序存储结构,一个在其第i个位置插入新元素的算法时间复杂度为(D) A.O(0) B.O(1) C.O(n) D.O(n2) 2.六个元素按照6,5,4,3,2,1的顺序入栈,下列哪一个是合法的出栈序列?(D) A.543612 B.453126 C.346512 D.234156 3.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为(B ) A.8 B.9 C.10 D.11 4.设森林F对应的二叉树B有m个结点,B的右子树结点个数为n,森林F中第一棵树的结点个数是( B ) A. m-n B.m-n-1 C.n+1 D.m+n 5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B) A.9 B.11 C.15 D.不确定 6.下列哪一个方法可以判断出一个有向图是否有环。(A) A.深度优先遍历 B.拓扑排序 C.求最短路径 D.求关键路径 7.第7层有10个叶子结点的完全二叉树不可能有(B )个结点。 A.73 B.234 C.235 D.236 8.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是(B) 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) 9.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序过程中变化如下:(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47(4)15 21 25 47 84则采用的排序方法是(B ) A.选择排序 B.起泡排序 C.快速排序 D.插入排序 10.对线性表进行折半查找时,要求线性表必须(D) A.以顺序方式存储 B.以顺序方式存储,且数据元素有序

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

2012年数据结构期末考试题及答案 一、选择题 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<n;i++) for(j=0;j<n;j++) s +=B[i][j]; sum =s ; 9.下面程序段的时间复杂度是O(n*m)。 for(i =0;i<n;i++) for(j=0;j<m;j++) A[i][j] =0; 10.下面程序段的时间复杂度是O(log3n)。 i =0; while(i<=n) i =i * 3; 11.在以下的叙述中,正确的是B。 A.线性表的顺序存储结构优于链表存储结构 B.二维数组是其数据元素为线性表的线性表 C.栈的操作方式是先进先出 D.队列的操作方式是先进后出 12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着B 。 A.数据元素具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等 13.链表不具备的特点是A。 A.可随机访问任一结点B.插入删除不需要移动元素 C.不必事先估计存储空间D.所需空间与其长度成正比 14.不带头结点的单链表head为空的判定条件是A。

数据结构试题及答案

第一章概论 一、选择题 1、研究数据结构就是研究(D)。 A. 数据的逻辑结构?B。数据的存储结构 C。数据的逻辑结构和存储结构?D.数据的逻辑结构、存储结构及其基本操作(研究非数值计算的程序设计问题中,计算机操作对象以及他们之间的关系和操作) 2、算法分析的两个主要方面是(A)。 A.空间复杂度和时间复杂度???B。正确性和简单性 C。可读性和文档性D.数据复杂性和程序复杂性 3、具有线性结构的数据结构是( D )。(线性结构就是:在非空有限集合中,存在为一个被称为第一个的数据元素和最后一个元素,有除了第一个元素,集合中每一个元素均只有一个前驱,除了最后一个元素有唯一后继)(链表、栈、队列、数组、串) A. 图B. 树??C.广义表(线性表的推广) D.栈 4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。 A.可执行性、可移植性和可扩充性? B. 可执行性、有穷性和确定性 C。确定性、有穷性和稳定性??? D. 易读性、稳定性和确定性 5、下面程序段的时间复杂度是( C )。 for(i=0;i

csdn数据结构笔试题汇总

现在的公司招聘,都要笔试面试.如果你不是那种编程功底非常深厚的人,又不好好准备一番,在笔试面试中往往会处于被动局面.虽然有些笔试题是故意为难我们,有点钻牛角尖.但是很多笔试题面试题确实能够很好地看出我们的基础. 在这里,我就略去那些钻牛角尖的题.从csdn论坛我近半年的收集中选出10道有代表性的题目,难度基本上是逐渐加大.对数组,指针,数据结构,算法,字符串,文件操作等问题都有覆盖.主要以c语言的实现为主,也有c++的题.大家可以先做做这10道题,测试一下自己的水平. 1. 下面这段代码的输出是多少(在32位机上). char *p; char *q[20]; char *m[20][20]; int (*n)[10]; struct MyStruct { char dda; double dda1; int type ; }; MyStruct k; printf("%d %d %d %d",sizeof(p),sizeof(q),sizeof(m),sizeof(n),sizeof(k)); 2. (1) char a[2][2][3]={{{1,6,3},{5,4,15}},{{3,5,33},{23,12,7}} }; for(int i=0;i<12;i++) printf("%d ",_______); 在空格处填上合适的语句,顺序打印出a中的数字 (2) char **p, a[16][8]; 问:p=a是否会导致程序在以后出现问题?为什么? 答:p是char**类型,而a是char[16][8]类型。经过退化,a可以作为一个指针右值,类型为char(*)[8],或者在参数列表中表达为char[][8]。char**指针和char(*)[8]不是完全兼容的指针,无法无条件地相互转换。编译器应该对p = a 这种试图进行隐式转换的表达式产生一个警告(C)或错误(C++)。 从语言层面来说,p 和 a 具有不同的类型,表达式p = a 体现了错误的语义。 从实现层面上来看,由于C/C++的数组长度不是一个左值,多维数组实际上只是数组的数组,换用不兼容的指针类型指向的对象和数组可能占用相同的存储器单元(线性地址空间的边界一致),那么不一定会出现和预期不符的问题。但在参数传递等情况下,这个问题很容易复杂化。 事实上,LZ的问题是使用者对语言的误用。解决方法就是保证p为char(*)[8]类型: char(*p)[8]; char a[16][8]; p = &a; 或者(尤其是在数组大小需要改变的情况下)不要使用内置的静态数组,用指针和表达数组大小的整数来实现动态数组。---- LS linxxx3 错误,尽管这里a 和p 在语言实现(目标代码)中一般不保留类型信息而体现行为一致性,语言本身也允许相同的访问方式,但在编译期a 冗余了的类型比p 更严格,a 不只是指针,本质是不同的。

相关文档
最新文档