数据结构填空总题目

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

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&&(isqart(n));i++);If(isqart(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;ji;++j)p=p*i;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)第四份:CH031.一个栈的输入序列号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(topmaxsize)为一个顺序存储的栈,变量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)。入队时,可用语句(modn)切除新元素在数组data中的下标。16.向一个链式栈插入一个新结点时,首先把栈顶指针的值赋给(新结点的指针域),然后把新结点的存储位置赋给(栈顶指针)。17.向一个循环队列中插入元素时,需要首先移动(队列指针),然后再向所指位置(写入)新插入的元素。18.对于一个栈,给出输入项A,B,C。如果输入项顺序为A,B,C所组成,则全部可能的输出项有(5)种,不可能的输出项为(CAB)。19.当用长度为n的数组顺序存储一个栈时,若用top==n表示栈空,则表示栈满的条件为(top==0

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功