数据结构填空总题目汇总

数据结构填空总题目汇总
数据结构填空总题目汇总

1. 一个算法应该具有以下几个五个特征:(有穷性)(确定性)(输

入)(输出)(可行性)

2. 算法的复杂度有(时间)和(空间)之分

3. 数据结构指的是数据之间的相互关系,,既数据的组织形式,一般

包括三个方面的内容(逻辑结构)(存储结构)(数据的运算)

4. (数据元素)是数据的基本单位

5. (算法的复杂度)是算法效率的度量,是评价算法优势的重要依据

6. (结构)是元素之间的关系的集合

7. 通常来说,一个数据结构的DS可以表示为一个(二元组)

8. 最常用的数据结构是(数组结构)和(记录结构)

9. 算法设计策略有(递归技术)(分治法)(模拟法)(贪心算

法)(随机算法)(动态规划)(状态空间)(搜索法)

10. 现实世界中的事物及联系在数据世界中用(数据模型)描述

11. 数据元素之间的逻辑关系,也称(数据的逻辑结构)

12. 数据的逻辑结构可以形式的用一个二元组B=(K,R)来表示,其中

K是(结点的有穷集合)R是*(K上关系的有穷集合)

13. 一个数据元素可以有若干个(数据项)组成考虑:如何做;

14. (数据项)是具有独立含义的最小表示单位

15. (数据的运算)既对数据施加的操作

16. (数据的逻辑结构)可以看做是从具体问题抽象出来的数学模型

17. 数据元素及其关系在计算机存储;内的表示称为(数据的存取结

构)

18. 数据的存储结构是逻辑结构用(计算机语言)的实现

19. 对机器语言而言,存储结构是具体的。一般至在(高级语言)层次

上讨论存储机构

20. 所谓(抽象的操作),是至只知道这些操作是“做什么”,而无需

21. 较早的软件开发用结构法层序设计方法。层序的定律是;程序=(算

法)+(数据结构)

22. 算法是一个独立的整体,数据结构也是一个独立的整体俩者分开设

计以(算法)为主;’

23. 数据结构是介于(数学)(计算机硬件)(计算机软件)三者之

间的一门核心课程

24. 数据的范畴包括(整数)(实数)(字符串)(图像)和(声

音)

25. 下面程序的时间复杂度为)(0(sqrt(n)))

Void prime(int n)

{ for(i=2;((n%i)!=)0&&(i

If(i>sqart(n))

Printf(“%d is a prime number”,n);

Else print(“%d is a prime number”,n); }

26. 下面程序的时间复杂度为(0(n))

Float suml (int n)

{ p=1;suml=0;

For(i=1;i<=n;++i)

{p=p*i;suml=suml+p; }}

27. 下面的时间复杂度为(0(n^2))

Float sum2(int n)

{ sum2=0;

For{i=1;i<=n;i++)

} p=1;

For(j=1;j

Sum2=sum2+p; }}

1. 顺序存储的线性表,设其长度为n。在任何位置上插入或删除操作

的时间代价基本上都是等效的。则插入一个元素大约需要移动表中的(n(n+1)/2 )个元素,删除一个元素时大约要移动表中的(n(n-1)/2 )

个元素。

2. 线性表的存储结构可以分为(线性存储结构)和(链式存储结

构)。

3. 若要在一个不带表头结点的单链表的首结点*P结点之前插入一个*S

结点时,可执行下列操作:

(1)s->next= p->next ;

(2) p->next=s;

(3)t=p->data;

(4)p->data= s->data ;

(5)s->data= t ;

4.根据线性表的链式存储结构中每个结点所含指针的个数,链表可分为(单链表)和(双链表);而根据指针的联系方式,链表又可分为(非循环链表)和(循环链表)。

5.对于线性表的顺序存储,需要预先分配好存储空间。若分配太多容易造成存储空间的(浪费),若分配太少又容易在算法中造成(上溢),因而只适用于数据量变化不大的情况;对于线性表的链接存储,不需要(预先分配)存储空间,存储器中的整个(空间)都可供使用,分配和回收结点都非常方便,能有效的利用存储空间,在算法中不必考虑(上溢)的发生,因而适用于数据量变化较大的情况。

7.(双向)链表适合从指点结点开始,寻找直接前趋的运算。

8.当一个线性表经常进行存取操作而很少进行插入和删除操作时,则采用(顺序)存储结构为宜,相反,当经常进行的是插入和删除操作时,则采用(链接)存储结构为宜。

9.在单链表中设置头结点的作用是(使空表和非空表统一,算法处理一致)。

10.顺序表中逻辑上相邻的元素物理位置(一定)紧邻,单链表中逻辑上相邻的元素物理位置(不一定)紧邻。

11.如果线性表的存储空间变化较大,则适用(链)表。

12.在链表中,每个结点中含8个字符,1个指针域。其中每个字符占1个字节,每个指针占4个字节。则该结点的存储密度是(2/3)。

13.当向一个顺序表插入一个元素时,从插入位置开始向后的所有元素均(后移)一个位置,移动过程是从(后)向(前)依次移动没一个元素。

14.要从一个顺序表删除一个元素时,被删除元素之后的所有元素均需(前移)一个位置,移动过程是从(前)向(后)依次移动一个元素。15在单链表中,若要在指针P所指结点后插入指针S所指结点,则需要执行下列两条语句(s->next=p->next)和(p->next=s)。

16. 在带有头结点的双链表1中,指针P所指结点是第一个元素结点的条

件是(p=L->next)。

17. 在线性表的单链存储中,若一个元素所在结点的地址为P,则其后

继结点的地址为(p->next),若假定P为一个数组A中的下标,则其后继结点的下标为(a【p】-next)。

18. 在一个带头结点的单循环链表中,P指向尾结点的直接前驱,则指

向头结点的指针head可用P表示为head=(p->next->next)。

19. 既无前驱也没有后继的结点在所在线性表长度为(1),结点指针

域的值为(空)。

20. 在单链表中,除了元结点外,任一结点的存储位置由(其直接前驱

结点的链域的值)指示。

21. 静态链表是用(数组)描述的链表。

22、 循环链表的特点是表中(最后 )一个结点的指针域指向( 头

结点 ),整个链表形成一个环。

23、 双向链表的结点中有( 质 )个指针域,其一指向( 直接后继 ),另一指向( 直接前驱 )

24、 设P点为结点a的指针,如果要删除a的后一个结点,修改指针的语

句为( p->next=p->next->next )

25、 在单链表中,任何两个元素的存储位置之间都有固定的联系,因

为可以从( 头结点 )进行查找任何一个元素

26、 链表的每个结点中只包含一个指针域,该链表称为( 线性链表 )或( 单链表 )

27、 链式存储结构的特点是用一组( 任意 )的存储单元存储线性表

的数据元素

28、 在单链表中,若要在指针P所指结点后插入指针s所指结点,则需

要执行下列两条语句,s->next=p->next,( p->next=s )

29、 一个向量第一个元素的存储地址是100,每个元素的长度是2,则

第5个元素的地址是( 108 )

30、 向顺序表中第i个元素之前插入一个新元素时,首先从( 位置i

)开始向后的所有元素均需( 后移 )一个位置,接着把新元素写入(位置i)上,最后使线性表的长度(加1)。从顺序表中删除第i个元

素时,首先把第i个元素赋给(工作单位),接着从(位置i+1)开始向后,所有元素均(前移),最后使线性表的长度(减1)

31、 在一个长度为n的顺序表中删除第i个元素,要移动(n-i)个元素,如果要在第i个元素前插入一个元素,要后移(n+i-1)个元素

32、 在双向循环链表中,在p所指的结点之后插入s指针所指的结点,

其操作是

S->next=p->next;(p->next->prior )=s;s->prior=( p );p-

>next=s;

33. 对于一个长度为n的顺序存储的线性表,在表头插入元素的时间复

杂度为(O(n)),在表尾插入元素的时间复杂度为( O(1) )

34. 在双向循环表中,在p所指的结点之后插入指针f所指的结点,其操

作为

F->next=p->next;( p->next->prior=f )( f->prior=p )。

35. 在顺序表中,插入或删除一个元素,需要平均移动(约表长的一

半)个元素,具体移动的元素个数与(该元素在线性表中的位

置)有关

36. 在线性表的顺序存储中,元素之间的逻辑关系是通过(物理存储位

置)决定的,在线性表的链接存储中,元素之间的逻辑关系是通过(链域的指针)决定的

37. 对于一个具有n个结点的单链表中,在已知的结点后插入一个新结

点的时间复杂度为(O(1) )在给定值为X的结点后插入一个新结点的时间复杂度为(O(n))

38. 在线性表中,若结构是一个非空集,则第一个结点称为(开始结

点),且此结点(没有)前驱结点,其余各个结点有且仅有(一个前驱结点),最后一个结点称为(终端结点),它(没有)后继结点,其余各个结点有且仅有1个后继结点

39. 只要确定了存储线性表的起始位置,线性表中任何一个数据元素都

可以(随机存取),这个特点也铸成了这种存储结构的弱点,在执行(插入)和(删除)操作时,需要移动大量元素

40. 从一个顺序存储的循环队列中删除一个元素时,应该(先移动队首

指针,反取出元素)

41. 若L是splist类型的顺序表,则表中的第i个数据元素是(Lelem[i-

1])

42. 已知一个顺序存储的线性表,设每个结点需占用m个存储单元,若

第一个结点的地址为d1,则第1个结点的地址为(dl+(I-1)*m)

第四份:CH03

1. 一个栈的输入序列号12345,则栈的输出序列是12345是(可能

的)。

2. 队列的插入操作在(队尾)进行,删除操作在(对头)进行。

3. 栈又称为(后进先出)的表,队列称为(先进先出)的表。

4. 设长度为n的链队列用单循环链表表示,若只设头指针,则入队和

出队操作的时间复杂度分别为( O(n))和( O(1));若只设尾指针,则入队和出对操作的时间复杂度分别为( O(1) )和(O(1) )。

5. 向一个栈顶指针为HS的链中插入一个S所指结点时,则执行( S-

>next=HS,HS=S; )。

6. 设S(1:maxsize)为一个顺序存储的栈,变量top只是栈顶位置,

栈为空的条件是( top=0),栈为满的条件是( top=maxsize ).

7. 向一个顺序栈插入一个元素时,受限使( 栈顶指针 )后移一个位

置,然后把待插入元素( 写入 )到这个位置上。

8. 从一个栈删除元素时,需要前移一位( 栈顶指针 )。

9. 仅允许在表的同一端插入和删除运算的线性表被称为( 栈 )。

10. 设sp(top

素的位置,能做入栈操作的条件是( x:sq[top])。如要把栈顶元素弹出并送到x中,则需执行下列语句( top=top—1 )。

11. 在一个顺序栈中,若栈顶指针等于( —1 ),则为空栈;若栈顶

指针等于( maxsize —1 ),则为栈满。

12. 在顺序队列中,应该有队头和队尾两个指针来指示,队头指针和队

尾指针的初值在队列的初始化时均应该设置为( 0 ),当对队列进行插入和删除的操作后,如果头指针和尾指针相等时,队列为(空 )。

13. 已知一个栈的输入序列为1,2,3,...,n,则其输出序列的第2个元

素为n的输出序列的种数是( n—1 )。

14. 在一个链式栈中,若栈顶指针等于NULL则为( 空栈 ),在一个链

式队列中,若队头指针与队尾指针的值相同,则表示该队列为(

空 )或该队列( 只含有一个结点 )。

15. 循环队列采用数组data( front )来存储元素的值,并用front和

rear分别作为其头尾指针。为区分队列的满和空,约定队列中能够存放的元素个数最大为n—1,也即至少有一个元素空间不用,则在任意时刻,至少可以知道一个空的元素的下表是( rear=rear+1)。入队时,可用语句( mod n )切除新元素在数组data中的下标。

16. 向一个链式栈插入一个新结点时,首先把栈顶指针的值赋给( 新

结点的指针域),然后把新结点的存储位置赋给( 栈顶指针)。

17. 向一个循环队列中插入元素时,需要首先移动( 队列指针),

然后再向所指位置( 写入 )新插入的元素。

18. 对于一个栈,给出输入项A,B,C。如果输入项顺序为A,B,C所组成,

则全部可能的输出项有( 5 )种,不可能的输出项为( CAB )。

19. 当用长度为n的数组顺序存储一个栈时,若用top==n表示栈空,则

表示栈满的条件为( top==0 )。

20. 向一个栈顶指针为top的链式栈中插入一个新结点*p时,应执行(

P->link=top )和( top=p )操作。

21. 链队列实际上是一个同时带有头指针和尾指针的单链表,尾指针指

向该单链表的( 最后一个结点 )。

22. 设输入元素的顺序为1,2,3,4,5,要在栈S的输出端得到序列

4.3.

5.2.1,则进行的操作用栈的基本运算表示应为push(S,1),

push(S,2),push(S,3),push(S,4),pop(S),(

pop(s),push(s,5) ),pop(S),pop(S),pop(S)。

23. 在栈中存取数据遵从的原则是( 后退先出 )。

24、 从一个栈顶指针为top的非空链式栈中删除节点并不需要返回栈顶结点的值和回收结点时,应执行( top=top→link)操作。

25、 假定front和rear分别为一个链式队列的对头和队尾指针,则链式队列中只有一个结点的条件为(front==rear&&front!=NULL)。26、 在一个循环队列中,队首指针指向队首元素的(前一个位置);从循环队列中删除一个元素时,其操作是先取出队首元素,后(移动队首指针);在具有n个单元的循环队列中,队满时共有(n-1)个元素。

27、 设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的出栈顺序为s2,s3,s6,s5,s1则顺序栈的容量至少应为(3)。

28、 假设以数组Q[m]存放循环队列中的元素,同时以rear和length分别只是循环队列中的队尾位置和队列中的所含元素的个数,则该循环的队列的对空条件为(length==0)。

29、 中缀表达式3*(X+2)-5所对应的后缀表达式为(3*2+*5)。

30、 后缀表达式45*32+-的值为(15)。

31、 假设以数组Q[m]存放循环队列中的元素,同时以rear和length分别只是循环队列中的队尾位置和队列中的所含元素的个数,则该循环的队列的对满条件为(length==Maxsize)。

32、 栈的存储结构有(顺序栈)和(链栈)。

33、 栈的特点(后进先出),队列的特点是(先进先出),栈和队列的特点是(操作受限的线性表)。

34、 设栈S和队列Q的初始状态为空,元素a.b.c.d.e.f依次通过栈S,一个元素出栈后即进入队列Q。若这6个元素出队列的顺序是bdcfea.则栈S的容量至少应是(3)。

35、 一个队伍的入队列是1234,则队列的输出顺序是(1、2、3、4)。

36、 对于一个栈做进栈运算时,应先判断栈是否为(栈满),做出栈运算时,应先判断别栈是否(栈空),当栈中元素为m时,做栈运算时发生上溢,则说明栈的可用最大容量为(m)。为了增加内存空间的利用率和减少发生上溢的可能性,由两个栈共享一片连续的内存空间时,应将两栈的(栈底)分别设在这片内存空间的两端,这样只有当(两栈和栈顶空间的某一个位置)时才发生上溢。

37、 设有一个空栈,栈顶指针为1000H,现有输入序列为12345,push,push,pop,push,pop,push,push后,输出序列为(2,3),栈顶指针是(1003H)。

38、 设有一空栈,现有输入队列12345,经push,push,pop,push,pop,push,push,后,输出队列是(2,3)。

39、 用数组Q表示一个环形队列,f为当前对头元素的钱一位置,r为队尾元素的位置。假定队列中元素个数总小于n,求队列中元素个数公式是((r-f+n)%n)。

40、 用循环链表表示的队列长度为n,若只设头指针,则出对和入对的时间复杂度分别是(0(1))和(0(n));若只设尾指针,则出队和入队的时间复杂度分别是(0(n))和(0(1))。

41、 向栈中压入元素的操作是(先移动栈顶指针,后存入元素)。

42、 向栈进行出栈时的操作是(先取出元素,后移动栈顶指针)。

43、 在一个循环队列中,队首指针指向对周元素的(前一个位置)。

44、 从循环队列中删除一个元素时,其操作是(先移动队首指针,后取出位置)。

45、 假设Q[1,10]是一个循环队列,初始状态为front=rear=1,若做完debgh入队和de出队的操作后,rear=(6),front=(3).

46、 在具有n个单元的循环队列中,队满时共有(n-1)个元素。

47、 将f=1+1/2+1/3+.....+1/n转化成速递归函数,其递归出口是(f(1)=1)递归体是(f(n)=f(n-1)+1/n)。

1、 空串是 零个字符的串 ,其长度等于 零 。

2、 空格串是 有一个或多个空格组成的串 ,其长度等于 串空格字符的个数 。

3、 数组的长度是 数组的元素个数 。

4、 空串与空格串的区别在于 空串的长度为零,而空格串的长度不为

零 。

5、 两个字符相等的充分必要条件是 长度相等 。

6、 串的两种最基本的存储方式是 顺序存储方式和链接存储方式

7、 两个串相等的充分必要条件是 两个串的长度相等且对应位置的字

符相同 。

8、 串中任意个连续相等的字符组成的子序列称为 子串 。

9、 包含子串的串相应地称为 主串 。

10、 当且仅当两个串的值相等,称两个串 相等 。

11、 常对数组进行的操作是 查找和修改 。

12、 二维数组A[10][20]采用列序为主方式存储,每个元素占一个存储

单元,并且A[0][0]的存储地址是200,则A[6][12]的地址是

200+(6x20+12)x1 。

13、 有一个10阶对称矩阵A,采用压缩存储方式(以行序列为主存储,

且A[0][0]=1),则A[8][5]的地址是 42 。

14、 串的逻辑结构和线性表极为相似,区别在于 串的数据对象约束 。

15、 串的基本操作中,通常以 串的整体 为操作对象。

16、 广义表((a),((b),c),(((d))))的表头是 (a) ,表尾是 (((b),c),(((d)))) 。

17、 广义表((a),((b),c),(((d))))的长度是 3 ,深度是 4 。

18、 子串的定操作通常称为串的 模式匹配 。

19、 由零个或多个字符组成的有限序列,称为 串 。

20、 通常称字符在序列中的序号为该字符在串中的 位置 。

21、 两个字符串S1和S2的长度分别为m和n,求这两个字符串最大共同

子串的时间复杂度为T(m,n),这最优的时间复杂度为 O(m*n) 。

22、 广义表(a,(a,b),d,e,((i,j),k))的长度是5 ,深度是 3 。

23、 稀疏矩阵一般的压缩存储方式是 三元组和十字链表 。

24、 二位数组A[10....20][5....10]采用行序为主方式存储,每个元

素占4个存储单元,并且A[10][5]的存储地址是1000,则A[18][9]的地

址是 1208 。

25、 二维数组A[m][n]采用行序为主方式存储,每个元素占k个存储单

位,并且第一个元素的存储地址是LOC(A[0][0]),则A[i][j]的地址

是 Loc(A[0][0])+(n*i+j)*k 。

26、 写出模式串P=“abaabcac”的next函数值序列为01122312 。

27、 数组A[-2....5,2....8,1.....8]以行序存储,设第一个元素的首

地址是54,每个元素的长度为5,则元素A[0,6,5]的存储首址为 319 。

28、 设n行n列的下三角矩阵A已压缩到一维数组S[1....n*(n+1)/2]中,若按行序为主存储,则A[i][j]对应的S中的存储位置是 i*

(i+1)/2+j+1 。

29、 数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j

从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,

元素A[8][5]的起始地址为SA+222 。

30、 其非零元素较零元素少,且分布没有一定规律的矩阵,称

为SA+180 。

31、 数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j

从1到10,从首地址SA开始连续存放在存储器内,存放该数组至少需要

的单元数是 稀疏矩阵 。

32、 广义表的表尾总是一个 240 。

33、 设按低下标优先存储整数数组A[9][3][5][8]时,第一个元素的字

节地址是100,每个整数占4个字节,a[3][1][2][5]的存储地址是 1784 。

34、 假如值相同的元素或零元素在矩阵中的分布有一定规律,称为 特

殊矩阵 。

35、 为多个值相同的元素分配一个存储空间;对零元素不分配空间,

称为 压缩存储 。

36、 广义表的深度定义为 广义表中括弧的重数 ,是广义表的一种

量度。

37、 二维数组可有两种存储方式即 以行序为主序的存储方式和一列

序为主序的存储方式 。

38、 三元组顺序标又称有序的双下标法,它的特点是 非零元素在表

中按行序有序存储 。

39、 设广义表L=((),()),则Head(L)是 Head(L)=0 ;

Tail(L)是 Tail(L)=(0) ;L的长度是 2 ,深度是 2 。

1. 设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉

树中所包含的结点数至少为2h-1

2. 已知某二叉树的后序遍历为dabcc,中序遍历为debac,则它

的前序遍历为_cedba__

3. 如果t2是出有序树t转换而来的二叉树,那么t中的结点的前

序就是_t2___结点中的前序。

4. 如果t2是由序树t转换而来的二叉树,那么t中的结点的后序

就是__t2___结点中的中序。

5. 某二叉树的前序遍历结点顺序为abdgcefg,中序遍历结点顺

序为dgbacchf,则后序遍历的结点顺序为_gdbehfca___

__

6. 按照二叉树的定义,具有3个结点的二叉树有__5____

7. 深度为5的二叉树至多以有__31_个结点

8. 树最适合用来表示元素之间具有_分支层次关系__的数据

9. 任何一颗二叉树的叶结点在_前序,中序,后序___遍历

中的相对次序不发生改变

10. 在一非空二叉树的中,根结点的右边只有_右子树___上

的所有结点

11. 实现任意二叉树的后序遍历的非递归算法而不适用栈结构,

最佳的二叉树方法是采用_三叉列表的存储结构

12. 如果某二叉树的前序为stuwv,中序为uwtvs,那么二叉

树的后序为_wuvts_

13. 具有五层结点的二叉树平衡树至少有_15__个结点

14. 线索二叉树是一种_物理__结构

15. 设n\ m 为一棵二叉树上的两个结点,在中序遍历中,n在m的

前面的条件是_n在m的上方_

16. 二叉树按照某种线索化后,任意结点均有指向其前驱和后继

的线索,这种说法是_错误的___二叉树的前序遍历中,

任意一个结点均处于其子女结点的前面,这种说法是_正确

的_

17. 由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊

的树,这种说法是_错误的___

18. 设F是一个森林,B是由F转换得到的二叉树,F中有n个非终端

结点,则B中有指针域为空的结点有_n+1__个

21.对于二个具有a个结点的二又树.当它为一裸_完成___二叉树时具有最小高度,

即为_【log2n】+1__.当它为一裸单支树具有_最大._高度.即为_

_n__

22.在二叉搜素排序树上进行搜索查找时.其时间复杂度为_

o(logN)___进行侧除时,

其时间复杂度为_o(log_n)__

23.山带权为3,,、6,2,5的5个叶子结点构成一裸哈夫爱树.则带权路径长度为__55_

24.在一裸二叉排序树上按_中序__遍历得到的结点序列是一个有序序列。

25 对于一裸具有n个结点的二又树.当进行链接存储时.其二又链表中的指针城的

总数为_2n___个.其中(n-1)个用于链接孩子结点_n+1__个空闲着。

26.在一操二叉树中.度为0的结点个数为no.度为2的结点个数为n2则n0=n2+1____

27在具有”个结点的二叉排序树上播人一个新结点时.其时间复杂度大致_o(log2n)____为,n个数据元众生成一裸二又排序树时,其时间复杂度大致为(O(log2n)

28.已知8个数据元素由( 35,75,40,15,20,55,95,65 )按照依次搔入结点的方法生成一裸二叉排序树后.最后两层上的结点总数为 2_ 29.由a, b, c三个结点构成的二叉树.共有_ 5 种不同结构。

30假定一裸三叉树的结点放为50,则它的最小高度为 5

31,在一裸二叉树上的第5层的结点数最多为_ 16

32.由带权为,9、2. 5,7,的四个叶子结点构造一裸哈夫曼树.该树的带权路径长度为 44

33假定在一操二又树中.双分支结点数为15.单分支结点致为30个.则叶子结点数为 16

34.在一裸度为3的树中.度为3的结点数为2个,度为2的结点数为.个。度为.的结点数为2个.则度为0的结点数为 6 个,

35.假定一裸树的广义表表示为A(B(E),C(F(H,I,J),G),D), (Il该树的深度为 4

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

37.设森林F中有三裸树,第一、第二和第只裸树的结点个数分别为ml, m2, m3.则与森林F对应的二又树根结点的右子树I.的结点个致是_ m2+m3 。

38.若二又树采用的是二又链表存储结构.要交换其所有分支结点左右子树的位置利用_中序 遍历方斌最合适。

39.在计算递归曲数时,如不使用递归过程.则一般悄况下必须借助于 栈 数据结构。

40树(及一切树形结构)是一种“_ 分支层次 “结构,在树上根_结点没有育接晌驭,对树上任一结点x来说.x是它的任一子树的根结点惟一的_直接前驱 。

41.一裸树上的任何结点(不包括根本身)称为根的_子孙 。若B 是A的子孙.则称A是B的 祖先

42.一般的.二又树有 空 二又树、 只含根 的二叉树、只有 非空左子树 的二又树,只有 非空右子树 _的二叉树、同时有 非空左右子树 的二又树五种幕本形态:

43.二又树第i (i>=1)层上至多有 2t-1 个结点。

44.深度为k(k>=1)的二叉树至多有 2k-1 个结点.

45对任何二又树.若度为2的结点数为n2:,则叶子数n0= n2+1 46满二叉树卜各层的结点数以达到了二叉树可以容纳的 最大值 。满二叉树也是_完全 二又树.但反之不然。

47.具有n个结点的完全二又树的深度为_(log2n)+1 。

48.如果将一裸有n个结点的完全二X树按层编号.则对任一编号为

i(1<=i<=n)的结点X有:

(一)若i=1则结点x是_ 根 ;若i>1,则x的双亲PARENT(X)的编号为

Floor(i/2)

(2)若2i>n.则结点x无 左孩子 且无 右孩子 ;否则。x的左孩子LC)iILD(X)的编号为 2i

(3)若2i+1>n。.则结点x无_ 右孩子 否则.x的右孩子RCHILD(X)的编号为 2i+1

49.二叉树通常有 顺序 存储结构和 链式 存储结构两类存储结构。

50.每个二叉链表的访问只能从 根 结点的指针.该指针几有标识二叉链表的作用。

51.对二叉链表的访问只能从 根 指针开始.若二叉树为空,

则 root =NULL,

1. 有向图G用邻接矩阵A{1。。。。。n,1。。。。。n}存储,其

第一列的所有元素之和等于顶点1的(入度)。

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

(1)倍。

3. 对于含有N个顶点E条边的无向连通图,利用Kruskal算法生成最

小代价生成树的时间复杂度为(o(elg0))。

4. 设G为具有N个顶点的无向连通图,则G至少有(N-1)条边。

5. 一棵有N个顶点的生成树有且仅有(N-1)条边。

6. 若连通网络上各边的权值均不相同,则该图的最小生成树有

(1)棵。

7. 不存在拓扑序列的(有向图)是图中存在回路。

8. 已知一个图的邻接矩阵表示,删除所有从第一个节点出发的边的

方法是(将矩阵第一行全部置为0).

9. 对于一个图G,若边集E(G)为有向边的集合,则该图为(有向

图)。

10. 对于一个图G,若边集E(G)为无向边的集合,则该图为(无向

图)。

11. 在一个无向图中,若存在一条边,则称Vi和Vj为该边的两

个端点,并称他们互为(邻接点)。

12. 对于有向图,顶点V的度分为(入度和出度)。

13. 有向图顶点V的度等于其(入度和出度)之和。

14. 入度是以该顶点为终点的入边(数目)。

15. 出度是以该顶点为起点的(出边)数目。

16. 具有N(N-1)/2条边的无向图成为(无向完全图)。

17. 具有N(N-1)/2条边的有向图成为(有向完全图)。

18. 边很少的图称为(稀疏图)。

19. 边很多的图称为(稠密图)。

20. 路径长度是指一条路径上经过的边的(数目)。

21. 若一条路径上所有顶点不重复出现,则称该路径为(向单路

径)。

22. 若一条路径上的开始点和结束点为同一个顶点,则称该路径为

(回路成环)。

23. 若图G中任意两个顶点都连通,则称G为(连接图)。

24. 无向图G中极大连通子图称为G的(连通分量)。

25. 在有向图G中,若任意两个顶点Vi和Vj都连通,从VI到Vj和从Vj

到Vi都存在路径,则称该图为(强连通图)。

26. 有向图G中极大强连通子图称为G的(强连通分量)。

27. 在一个图中每条边可以表上具有某种含义的数值,该数值称为

(权)。

28. 边上带权的图为(网)。

29. (邻接表)是图的一种连接存储结构。

30. 顶点表示活动,边表示活动之间的先后关系的有向图为顶点活动

网称为(顶点表示活动的网)。

31. 图的遍历方式有(深度优先搜索)和(广度优先搜索)两种。

32. 从邻接矩阵A可以看出,该图有(3)个顶点。如果是有向图,

该图共有(4)条弧;如果是无向图,则共有(2)条边。

33. 有向图中的结点前驱后继关系的特征是(一个结点可能有若干

个前驱,也可能有若干个后继)。

34. Krushal算法的时间复杂度为(o(Elge)),他对(稀疏)图

较为合适。

35. 如图所示,为由7个顶点组成的无向图。从顶点1出发,对他进行

深度优先遍历得到的顶点序列是(1534276),而进行广度优先

遍历得到的顶点序列是(1354276)。

36、 n个顶点的连通图用邻接矩阵表示时,该矩阵至少有(n-1)范围非0元素。

37、 在具有6个结点的无向简单图中,当边数最少为(5)条时,才能确保该图一定的连通图。

38、 遍历图的过程中实质上是(对每个顶点查找其邻接点的过程)。Breadth-first search 遍历图的时间复杂度为(O(e)),depth-first search 遍历图的时间复杂度为(O(e)),两者不同之处在于(遍历图的顺序不同),反映在数据上的差别是(DFS采用栈存储访问过的结点,BFS采用队列存储访问过的结点)。

39、 设有向图G如图所示

V—>V3→V4<—V2

(1)写出所有的括扑序列:(1234,1324,2134)。

(2)添加(从结点3到结点2)的弧后,则仅可能有唯一的括扑序列。

40、Prim(普里姆)算法使用于求(边稠密)的网的最小生成树;Kruskal算法适用于求(边稀疏)的网的最小生成树。

《数据结构》填空作业题答案

《数据结构》填空作业题答案 第1章绪论(已校对无误) 1.数据结构包括数据的逻辑结构、数据的存储结构和数据的运算三方面的内容。 2.程序包括两个内容:数据结构和算法。 3. 数据结构的形式定义为:数据结构是一个二元组: Data Structure =(D,S)。 4. 数据的逻辑结构在计算机存储器内的表示,称为数据的存储结构。 5. 数据的逻辑结构可以分类为线性结构和非线性结构两大类。 6. 在图状结构中,每个结点的前驱结点数和后继结点数可以有多个。 7. 在树形结构中,数据元素之间存在一对多的关系。 8. 数据的物理结构,指数据元素在计算机中的标识(映象),也即存储结构。 9. 数据的逻辑结构包括线性结构、树形结构和图形结构 3种类型,树型结构和有向图结构合称为非线性结构。 10. 顺序存储结构是把逻辑上相邻的结点存储在物理上连续的存储单元里,结点之间的逻辑关系由存储单元位置的邻接关系来体现。 11. 链式存储结构是把逻辑上相邻的结点存储在物理上任意的存储单元里,节点之间的逻辑关系由附加的指针域来体现。 12. 数据的存储结构可用4种基本的存储方法表示,它们分别是顺序存储、链式存储、索引存储和散列存储。 13. 线性结构反映结点间的逻辑关系是一对一的,非线性结构反映结点间的逻辑关系是一对多或多对多。 14. 数据结构在物理上可分为顺序存储结构和链式存储结构。 15. 我们把每种数据结构均视为抽象类型,它不但定义了数据的表示方式,还给出了处理数据的实现方法。 16. 数据元素可由若干个数据项组成。 17. 算法分析的两个主要方面是时间复杂度和空间复杂度。 18. 一个算法的时间复杂度是用该算法所消耗的时间的多少来度量的,一个算法的空间复杂度是用该算法在运行过程中所占用的存储空间的大小来度量的。 19. 算法具有如下特点:有穷性、确定性、可行性、输入、输出。 20. 对于某一类特定的问题,算法给出了解决问题的一系列操作,每一操作都有它的确切 的定义,并在有穷时间内计算出结果。 n 。 21. 下面程序段的时间复杂度为㏒ 3

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

一、单选题(每题 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 分,共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.便于按行处理矩阵元素

(完整版)数据结构练习题(含答案)

数据结构练习题 习题1 绪论 1.1 单项选择题 1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的①、数据信息在计算机中的②以及一组相关的运算等的课程。 ① A.操作对象B.计算方法C.逻辑结构D.数据映象 ② A.存储结构B.关系C.运算D.算法 2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是①的有限集合,R是D上的②有限集合。 ① A.算法B.数据元素C.数据操作D.数据对象 ② A.操作B.映象C.存储D.关系 3. 在数据结构中,从逻辑上可以把数据结构分成。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 4. 算法分析的目的是①,算法分析的两个主要方面是②。 ① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系 C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性 ② A. 空间复杂性和时间复杂性 B. 正确性和简明性 C. 可读性和文档性 D. 数据复杂性和程序复杂性 5. 计算机算法指的是①,它必具备输入、输出和②等五个特性。 ① A. 计算方法 B. 排序方法 C. 解决问题的有限运算序列 D. 调度方法 ② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和安全性 1.2 填空题(将正确的答案填在相应的空中) 1. 数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。 2. 在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。 3. 在树形结构中,树根结点没有结点,其余每个结点有且只有个直接前驱结点,叶子结点没有结点,其余每个结点的直接后续结点可以。 4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。 5. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。 6. 算法的五个重要特性是__ __ , __ __ , ___ _ , __ __ , _ ___。 7. 分析下面算法(程序段),给出最大语句频度,该算法的时间复杂度是__ __。 for (i=0;i

开放大学数据结构2020年考试必备填空题

1、数据结构按结点间的关系,可分为4种逻辑结构: 集合、线性结构、树形结构、图状结构。 2、数据结构中的数据元素存在多对多的关系称为图 状结构结构。 3、在一个长度为n的顺序存储结构的线性表中,向第 i(1≤i≤n+1)个元素之前插入新元素时,需向后移动n-i+1个数据元素。 4、从长度为n的采用顺序存储结构的线性表中删除第 i(1≤i≤n+1)个元素,需向前移动n-i个元素。5、数据的逻辑结构在计算机中的表示称为物理结构 或存储结构。 6、除了第1个和最后一个结点外,其余结点有且只有一 个前驱结点和后继结点的数据结构为线性结构,每个结点可有任意多个前驱和后继结点数的结构为非线性结构。 7、算法的5个重要特性是有穷性、确定性、可形 性、有零个或多个输入、有零个或多个输出。 8、数据结构中的数据元素存在一对多的关系称树 形结构结构。 9、往栈中插入元素的操作方式是:先移动栈顶指针, 后存入元素。 10、数据结构中的数据元素存在一对一的关系称为线 性结构结构。 11、要求在n个数据元素中找其中值最大的元素,设基本 操作为元素间的比较。则比较的次数和算法的时间复杂度分别为n-1和O(n)。 12、在一个单链表中p所指结点之后插入一个s所指结点 时,应执行__s->next=p->next;__和p->next=s;的操作。 13、设有一个头指针为head的单向循环链表,p指向链 表中的结点,若p->next= =head,则p所指结点为尾结点。 14、在一个单向链表中,要删除p所指结点,已知q指向 p所指结点的前驱结点。则可以用操作q->next=p->next; 。 15、设有一个头指针为head的单向链表,p指向表中某 一个结点,且有p->next= =NULL,通过操作p->next=head;,就可使该单向链表构造成单向循环 链表。 16、每个结点只包含一个指针域的线性表叫单链表。 17、线性表具有顺序存储和链式存储两种 存储结构。 18、数据的逻辑结构是从逻辑关系上描述数据,它与数据 的关系存储结构无关,是独立于计算机的。19、在双向循环链表的每个结点中包含两个指针域,其 中next指向它的直接后继,prior指向它的直接前驱,而头结点的prior指向尾结点,尾结点的next指向头结点。 20、单向循环链表是单向链表的一种扩充,当单向链表带 有头结点时,把单向链表中尾结点的指针域由空指针改为头结点的指针;当单向链表不带头结点时,则把单向链表中尾结点的指针域由空指针改为指向指向第一个结点的指针。 21、线性链表的逻辑关系时通过每个结点指针域中的指 针来表示的。其逻辑顺序和物理存储顺序不再一致,而是一种链式存储结构,又称为链表。 22、栈是限定在表的一端进行插入和删除操作的线性表, 又称为后进先出表。 23、队列的特性是先进先出表。 24、删除栈中元素的操作方式是:先取出元素,后移 动栈顶指针。 25、循环队列队头指针在队尾指针下一个位置,队列是 “满”状态 26、在队列的顺序存储结构中,当插入一个新的队列元素 时,尾指针增1 ,当删除一个元素队列时,头指针增1。 27、循环队列的引入,目的是为了克服假上溢。 28、向顺序栈插入新元素分为三步:第一步进行栈是否 满判断,判断条件是s->top=MAXSIZE-1 ;第二步是修改栈顶指针;第三步是把新元素赋给栈顶对应的数组元素。同样从顺序栈删除元素分为三步:第一步进行栈是否空判断,判断条件是s->top=-1。第二步是把栈顶元素;第三步修改栈顶指针。 29、假设以S和X分别表示入栈和出栈操作,则对输入序 列a,b,c,d,e一系列栈操作SSXSXSSXXX之后,得到的输出序列为bceda。

数据结构试题及答案

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

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

数据结构模拟试题1

一、单项选择题(在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。每小题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.在数据结构中,数据的基本单位是_____ ____。 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. n2 B. nlogn C. n D. logn 7.设使用某算法对n个元素进行处理,所需的时间是T(n)=100nlog2n+200n+2000,则该算法的渐近时间复杂度为____ ___。 A. O(1) B. O(n) C. O(200n) D. O(nlog2n)

CDCBBDD 第二章线性表 单项选择题 1.链表不具有的特点是____ ____。 A. 可随机访问任一元素 B. 插入和删除时不需要移动元素 C. 不必事先估计存储空间 D. 所需空间与线性表的长度正比 2.设顺序表的每个元素占8个存储单元。第1个单元的存储地址是100,则第6个元素占用的最后一个存储单元的地址为。 A. 139 B. 140 C. 147 D. 148 3.在线性链表存储结构下,插入操作算法。 A. 需要判断是否表满 B. 需要判断是否表空 C. 不需要判断表满 D. 需要判断是否表空和表满 4.在一个单链表中,若删除p所指结点的后继结点,则执行。 A. p->next = p->next->next; B. p->next = p->next; C. p = p->next->next; D. p = p->next; p->next = p->next->next; 5.将长度为n的单链表接在长度为m的单链表之后的算法时间复杂度为。A. O(n) B. O(1) C. O(m) D. O(m+n) 6.需要预分较大空间,插入和删除不需要移动元素的线性表,其存储结构是。 A. 单链表 B. 静态链表 C. 线性链表 D. 顺序存储方式ACCABB 填空题 1.在带表头结点的单链表中,当删除某一指定结点时,必须找到该结点的_____结点。2.在单链表中,指针p所指结点为最后一个结点的条件是。 3.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是。4.在一个长度为n的顺序表中第i个元素(1≤i≤n)之前插入一个元素时,需向后移动元素的个数是。 5.在长度为n的顺序表中插入一个元素的时间复杂度为。 1前驱 2 p->next==NULL

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

模拟试卷一 一、单选题(每题 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),下面哪一个序列是从上述序列出发建 堆的结果?( )

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

习题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.前半句错,后半句对

数据结构习题

习题一 一、填空题 1. 算法具有有穷性、确定性、可行性、输入和输出五大特征。 2. 数据结构的内容包括以下三个方面:数据元素、数据关系和运算集合。 3. 数据结构的存储结构分为顺序、链式、索引、散列。 4. 评价算法性能的标准主要从算法执行时间和空间两方面考虑。 5. 在线性结构、树形结构和图状结构中,数据元素之间分别存在着1对1 、1对多和多对多关系。 二、分析题 2.设n为整数,分析下列程序段中,用*标明的语句的语句频度及时间复杂度。(1)for(n =1;n<=10;n++) *s=s+n; (2) for(i =1;i<=n;i++) *s=s+n; (3) for(i =1;i<=n;i++) for(j=1;j<=n;j++) *s=s+n (4) for(i =1;i<=n;i++) for(j=1;j<=i ;j++) *s=s+n; (5)for(i =1;i<=n;i++) for(j=1;j<=n;j++) { c[i][j]=0; for(k=1;k<=n;k++) *c[i][j]=c[i][j]+a[i][k]*b[k][j]; } 习题二 3.填空题 1.在顺序表中,逻辑上相邻的元素,其物理位置上一定相邻。 2.在单链表中,逻辑上相邻的元素,其物理位置上不一定相邻。 3.设单链表中,指针p指向结点s,若要删除s之后的结点(若存在),则需修改指针的操作为P=s->next;s->next=s->next->next;free(p); 。 4.在一个长度为n的顺序表中,如果要删除第i个元素,需移动n-i+1 个元素。 二、选择题 1.某线性表中最常用的操作是存取序号为i的元素和在最后进插入和删除运算,则采用(C )存储方式的时间性能最好。 A.双向链表 B.双向顺环链表 C.顺序表 D.单向顺环链表 2.在一个单链表中,已知q结点是p结点的前驱结点,若在p和q之间插入s结点,则需执行( C )。 A.s->next=p->next;p->next=s B.p->next=s->next;s->next=p C.q->next=s;s->next=p D.p->next=s;s->next=q

数据结构习题及参考答案

习题1 一、单项选择题 A1.数据结构是指()。 A.数据元素的组织形式 B.数据类型 C.数据存储结构 D.数据定义 C2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。 A.存储结构 B.逻辑结构 C.链式存储结构 D.顺序存储结构 D3.树形结构是数据元素之间存在一种()。 A.一对一关系 B.多对多关系 C.多对一关系 D.一对多关系 B4.设语句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) CA5.算法分析的目的是(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.前半句错,后半句对

数据结构模拟试题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.一个无序的顺序表不能采用折半查找法进行查找。()。

数据结构试题答案

第一章概论 一、选择题 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

6、算法是(D )。为了解决某一问题而规定的一个有限长的操作序列 A. 计算机程序 B. 解决问题的计算方法 C. 排序算法 D. 解决问题的有限运算序列 7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示(C )。 A. O(n) B. O(nlog2n) C. O(n2) D. O(log2n) 8、下面程序段的时间复杂度为( C )。 i=1; while(i<=n) i=i*3; A. O(n) B. O(3n) C. O(log3n) D. O(n3) 9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的(B )和运算等的学科。(关系和操作) A. 结构 B. 关系 C. 运算 D. 算法 10、下面程序段的时间复杂度是( A )。 i=s=0; while(s

数据结构复习题

栈和队列 3.1 单项选择题 1. 一个栈的入栈序列a,b,c,d,e,则栈的不可能的输出序列是。 A. edcba B. decba C. dceab D. abcde 2. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为。 A. i B. n=i C. n-i+1 D. 不确定 3. 栈结构通常采用的两种存储结构是。 A.顺序存储结构和链式存储结构 B. 散列方式和索引方式 C. 链表存储结构和数组 D. 线性存储结构和非线性存储结构 4. 判定一个顺序栈ST(最多元素为m0)为空的条件是。 A. top !=0 B. top= =0 C. top !=m0 D. top= =m0-1 5. 判定一个顺序栈ST(最多元素为m0)为栈满的条件是。 A. top!=0 B. top= =0 C. top!=m0 D.top= =m0-1 6. 栈的特点是 B ,队列的特点是 A 。 A. 先进先出 B. 先进后出 7. 向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行。 (不带空的头结点) A. HS—>next=s; B. s—>next= HS—>next; HS—>next=s; C. s—>next= HS; HS=s; D. s—>next= HS; HS= HS—>next; 8. 从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行。(不带空的头结点) A. x=HS; HS= HS—>next; B. x=HS—>data; C. HS= HS—>next; x=HS—>data; D. x=HS—>data; HS= HS—>next; 9. 一个队列的数据入列序列是1,2,3,4,则队列的出队时输出序列是。 A. 4,3,2,1 B. 1,2,3,4 C. 1,4,3,2 D. 3,2,4,1 10. 判定一个循环队列QU(最多元素为m0)为空的条件是。 A. rear - front= =m0 B. rear-front-1= =m0 C. front= = rear D. front= = rear+1 11. 判定一个循环队列QU(最多元素为m0, m0= =Maxsize-1)为满队列的条件是。 A. ((rear- front)+ Maxsize)% Maxsize = =m0 B. rear-front-1= =m0 C. front= =rear D. front= = rear+1 12. 循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是。 A. (rear-front+m)%m B. rear-front+1

数据结构习题及答案精编版

第一章 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.若对线性表进行的操作主要不是插入删除,则该线性表宜采用(顺序)存储结构,若频繁地对线性表进行插入和删除操作,则该线性表宜采用( 链 )存储结构。

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

学习-----好资料 数据结构模拟试题一 一、判断题(每小题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指向链表最后

相关文档
最新文档