数据结构填空总题目讲解.docx

上传人:b****5 文档编号:28879237 上传时间:2023-07-20 格式:DOCX 页数:19 大小:29.11KB
下载 相关 举报
数据结构填空总题目讲解.docx_第1页
第1页 / 共19页
数据结构填空总题目讲解.docx_第2页
第2页 / 共19页
数据结构填空总题目讲解.docx_第3页
第3页 / 共19页
数据结构填空总题目讲解.docx_第4页
第4页 / 共19页
数据结构填空总题目讲解.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数据结构填空总题目讲解.docx

《数据结构填空总题目讲解.docx》由会员分享,可在线阅读,更多相关《数据结构填空总题目讲解.docx(19页珍藏版)》请在冰豆网上搜索。

数据结构填空总题目讲解.docx

数据结构填空总题目讲解

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)))

Voidprime(intn)

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

=)0&&(i

If(i>sqart(n))

Printf(“%disaprimenumber”,n);

Elseprint(“%disaprimenumber”,n);}

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

Floatsuml(intn)

{p=1;suml=0;

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

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

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

Floatsum2(intn)

{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

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)。

入队时,可用语句(modn)切除新元素在数组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转换

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1