《《数据结构》期中题库及答案.doc》由会员分享,可在线阅读,更多相关《《数据结构》期中题库及答案.doc(128页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、判断题:1、线性表的逻辑顺序与物理顺序总是一致的。()2、线性表的顺序存储表示优于链式存储表示。()3、线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。()4、二维数组是其数组元素为线性表的线性表。()5、每种数据结构都应具备三种基本运算:插入、删除和搜索。()6、数据结构概念包括数据之间的逻辑结构,数据在计算机中的存储方式和数据的运算三个方面。()7、线性表中的每个结点最多只有一个前驱和一个后继。()8、线性的数据结构可以顺序存储,也可以链接存储。非线性的数据结构只能链接存储。()9、栈和队列逻辑上都是线性表。()10、单链表从任何一个结点出发,都能访问到所有结点()
2、11、删除二叉排序树中一个结点,再重新插入上去,一定能得到原来的二叉排序树。()12、快速排序是排序算法中最快的一种。()13、多维数组是向量的推广。()14、一般树和二叉树的结点数目都可以为0。()15、直接选择排序是一种不稳定的排序方法。()16、98、对一个堆按层次遍历,不一定能得到一个有序序列。()17、在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。()18、折半搜索只适用与有序表,包括有序的顺序表和有序的链表。()19、堆栈在数据中的存储原则是先进先出。()20、队列在数据中的存储原则是后进先出。()21、用相邻矩阵表示图所用
3、的存储空间大小与图的边数成正比。()22、哈夫曼树一定是满二叉树。()23、程序是用计算机语言表述的算法。()24、线性表的顺序存储结构是通过数据元素的存储地址直接反映数据元素的逻辑关系。()25、用一组地址连续的存储单元存放的元素一定构成线性表。()26、堆栈、队列和数组的逻辑结构都是线性表结构。()27、给定一组权值,可以唯一构造出一棵哈夫曼树。()28、只有在初始数据为逆序时,冒泡排序所执行的比较次数最多。()29、希尔排序在较率上较直接接入排序有较大的改进。但是不稳定的。()30、在平均情况下,快速排序法最快,堆积排序法最节省空间。()31、快速排序法是一种稳定性排序法。()32、算法
4、一定要有输入和输出。()33、算法分析的目的旨在分析算法的效率以求改进算法。()34、非空线性表中任意一个数据元素都有且仅有一个直接后继元素。()35、数据的存储结构不仅有顺序存储结构和链式存储结构,还有索引结构与散列结构。()36、若频繁地对线性表进行插入和删除操作,该线性表采用顺序存储结构更合适。()37、若线性表采用顺序存储结构,每个数据元素占用4个存储单元,第12个数据元素的存储地址为144,则第1个数据元素的存储地址是101。()38、若长度为n的线性表采用顺序存储结构,删除表的第i个元素之前需要移动表中n-i+1个元素。()39、符号p-next出现在表达式中表示p所指的那个结点的
5、内容。()40、要将指针p移到它所指的结点的下一个结点是执行语句pp-next。()41、若某堆栈的输入序列为1,2,3,4,则4,3,1,2不可能是堆栈的输出序列之一。()42、线性链表中各个链结点之间的地址不一定要连续。()43、程序就是算法,但算法不一定是程序。()44、线性表只能采用顺序存储结构或者链式存储结构。()45、线性表的链式存储结构是通过指针来间接反映数据元素之间逻辑关系的。()46、除插入和删除操作外,数组的主要操作还有存取、修改、检索和排序等。()47、稀疏矩阵中0元素的分布有规律,因此可以采用三元组方法进行压缩存储。()48、不管堆栈采用何种存储结构,只要堆栈不空,可以
6、任意删除一个元素。()49、确定串在串中首次出现的位置的操作称为串的模式匹配。()50、深度为h的非空二叉树的第i层最多有2i-1个结点。()51、满二叉树也是完全二叉树。()52、已知一棵二叉树的前序序列和后序序列可以唯一地构造出该二叉树。()53、非空二叉排序树的任意一棵子树也是二叉排序树。()54、对一棵二叉排序树进行前序遍历一定可以得到一个按值有序的序列。()55、一个广义表的深度是指该广义表展开后所含括号的层数。()56、散列表的查找效率主要取决于所选择的散列函数与处理冲突的方法。()57、序列初始为逆序时,冒泡排序法所进行的元素之间的比较次数最多。()58、已知指针P指向键表L中的
7、某结点,执行语句P=P-next不会删除该链表中的结点。()59、在链队列中,即使不设置尾指针也能进行入队操作。()60、如果一个串中的所有字符均在另一串中出现,则说前者是后者的子串。()61、设与一棵树T所对应的二叉树为BT,则与T中的叶子结点所对应的BT中的结点也一定是叶子结点。()62、若图G的最小生成树不唯一,则G的边数一定多于n-1,并且权值最小的边有多条(其中n为G的顶点数)。()63、给出不同的输入序列建造二叉排序树,一定得到不同的二叉排序树。()64、由于希尔排序的最后一趟与直接插入排序过程相同,因此前者一定比后者花费的时间多。()65、程序越短,程序运行的时间就越少。()66
8、、采用循环链表作为存储结构的队列就是循环队列。()67、堆栈是一种插入和删除操作在表的一端进行的线性表。()68、一个任意串是其自身的子串。()69、哈夫曼树一定是完全二叉树。()70、带权连通图中某一顶点到图中另一定点的最短路径不一定唯一。()71、折半查找方法可以用于按值有序的线性链表的查找。()72、稀疏矩阵压缩存储后,必会失效掉随机存取功能。()73、由一棵二叉树的前序序列和后序序列可以唯一确定它。()74、在n个结点的元向图中,若边数在于n-1,则该图必是连通图。()75、在完全二叉树中,若某结点元左孩子,则它必是叶结点。()76、若一个有向图的邻接矩阵中,对角线以下元素均为0,则该
9、图的拓扑有序序列必定存在。()77、树的带权路径长度最小的二叉树中必定没有度为1的结点。()78、二叉树可以用0度2的有序树来表示。()79、一组权值,可以唯一构造出一棵哈夫曼树。()80、101,88,46,70,34,39,45,58,66,10)是堆;()81、将一棵树转换成二叉树后,根结点没有左子树;()82、用树的前序遍历和中序遍历可以导出树的后序遍历;()83、在非空线性链表中由p所指的结点后面插入一个由q所指的结点的过程是依次执行语句:q-next=p-next;p-next=q。()84、非空双向循环链表中由q所指的结点后面插入一个由p指的结点的动作依次为:p-prior=q,
10、p-next=q-next,q-next=p,q-prior-nextp。()85、删除非空链式存储结构的堆栈(设栈顶指针为top)的一个元素的过程是依次执行:p=top,top=p-next,free(p)。()86、哈希的查找无需进行关键字的比较。()87、一个好的哈希函数应使函数值均匀的分布在存储空间的有效地址范围内,以尽可能减少冲突。()88、排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列。()89、队列是一种可以在表头和表尾都能进行插入和删除操作的线性表。()90、在索引顺序表上实现分块查找,在等概率查找情况下,其
11、平均查找长度不与表的个数有关,而与每一块中的元素个数有关。()91、对于有向图,顶点的度分为入度和出度,入度是以该顶点为终点的入边数目;出度是以该顶点为起点的出边数目,该顶点的度等于其入度和出度之和。()92、无向图的邻接矩阵是对称的有向图的邻接矩阵是不对称的。()93、具有n个顶点的连通图的生成树具有n-1条边()二、填空题:1、数据结构课程讨论的主要内容是数据的逻辑结构、存储结构和_。2、数据结构算法中,通常用时间复杂度和_两种方法衡量其效率。3、一个算法一该具有_,_,_,_和_这五种特性。4、若频繁地对线性表进行插入与删除操作,该线性表应采用_存储结构。5、在非空线性表中除第一个元素外
12、,集合中每个数据元素只有一个_;除最后一个元素之外,集合中每个数据元素均只有一个_。6、线性表中的每个结点最多有_前驱和_后继。7、_链表从任何一个结点出发,都能访问到所有结点。8、链式存储结构中的结点包含_域,_域。9、在双向链表中,每个结点含有两个指针域,一个指向_结点,另一个指向_结点。10、某带头结点的单链表的头指针head,判定该单链表非空的条件_。11、在双向链表中,每个结点含有两个指针域,一个指向_结点,另一个指向_结点。12、已知指针p指向单链表中某个结点,则语句p-next=p-next-next的作用_删除p的后继结点_。13、已知在结点个数大于1的单链表中,指针p指向某个
13、结点,则下列程序段结束时,指针q指向*p的_结点。q=p;while(q-next!=p)q=q-next;14、若要在单链表结点*P后插入一结点*S,执行的语句_。15、线性表的链式存储结构地址空间可以_,而向量存储必须是地址空间_。16、栈结构允许进行删除操作的一端为_。17、在栈的顺序实现中,栈顶指针top,栈为空条件_。18、对于单链表形式的队列,其空队列的F指针和R指针都等于_。19、若数组s0.n-1为两个栈s1和s2的共用存储空间,仅当s0.n-1全满时,各栈才不能进行栈操作,则为这两个栈分配空间的最佳方案是:s1和s2的栈顶指针的初值分别为_。20、允许在线性表的一端插入,另一
14、端进行删除操作的线性表称为_。插入的一端为_,删除的一端为_。21、设数组Am为循环队列Q的存储空间,font为头指针,rear为尾指针,判定Q为空队列的条件_。22、对于顺序存储的队列,存储空间大小为n,头指针为F,尾指针为R。若在逻辑上看一个环,则队列中元素的个数为_。23、已知循环队列的存储空间为数组data21,且头指针和尾指针分别为8和3,则该队列的当前长度_。24、一个串的任意个连续的字符组成的子序列称为该串的_,包含该子串的串称为_。25、求串T在主串S中首次出现的位置的操作是_。26、在初始为空的队列中插入元素A,B,C,D以后,紧接着作了两次删除操作,此时的队尾元素是_。27
15、、在长度为n的循环队列中,删除其节点为x的时间复杂度为_。28、已知广义表L为空,其深度为_。29、已知一顺序存储的线性表,每个结点占用k个单元,若第一个结点的地址为DA1,则第i个结点的地址为_。30、设一行优先顺序存储的数组A56,A00的地址为1100,且每个元素占2个存储单元,则A23的地址为_。31、设有二维数组A919,其每个元素占两个字节,第一个元素的存储地址为100,若按行优先顺序存储,则元素A6,6的存储地址为_,按列优顺序存储,元素A6,6的存储地址为_。32、在进行直接插入排序时,其数据比较次数与数据的初始排列_关;而在进行直接选择排序时,其数据比较次数与数据的初始排列_
16、关。33、假设以行为优先存储的三维数组A567,A000的地址为1100,每个元素占两个存储单元,则A432的地址为_。34、设二维数组Amn按列优先存储,每个元素占1个存储单元,元素A00的存储地址loc(A00),则Aij的存储地址loc(Aij)=_。35、稀疏矩阵一般采用_方法进行压缩存储。36、稀疏矩阵可用_进行压缩存储,存储时需存储非零元的_、_、_。37、若矩阵中所有非零元素都集中在以主对角线为中心的带状区域中,区域外的值全为0,则称为_。38、若一个n阶矩阵A中的元素满足:Aij=Aji(0=I,jlink=p;p-link=s;B.s-link=p-link;p-link=s
17、;C.s-link=p-link;p=s;D.p-link=s;s-link=p;()17.设单链表中结点的结构为typedefstructnodefile:/链表结点定义ElemTypedata;file:/数据structnode*Link;file:/结点后继指针ListNode;非空的循环单链表first的尾结点(由p所指向)满足:_A.p-link=NULL;B.p=NULL;C.p-link=first;D.p=first;()18.计算机识别、存储和加工处理的对象被统称为_A数据 B.数据元素C.数据结构 D.数据类型()19.在具有n个结点的有序单链表中插入一个新结点并使链表仍
18、然有序的时间复杂度是_AO(1) B.O(n)C.O(nlogn) D.O(n2)()20队和栈的主要区别是_A.逻辑结构不同B.存储结构不同C.所包含的运算个数不同D.限定插入和删除的位置不同()21链栈与顺序栈相比,比较明显的优点是_A.插入操作更加方便B.删除操作更加方便C.不会出现下溢的情况D.不会出现上溢的情况()22在目标串T0n-1=”xwxxyxy”中,对模式串p0m-1=”xy”进行子串定位操作的结果_A.0 B.2C.3 D.5()23已知广义表的表头为A,表尾为(B,C),则此广义表为_A.(A,(B,C)) B.(A,B,C)C.(A,B,C) D.(A,B,C)()2
19、4二维数组A按行顺序存储,其中每个元素占1个存储单元。若A11的存储地址为420,A33的存储地址为446,则A55的存储地址为_A.470 B.471C.472 D.473()25二叉树中第5层上的结点个数最多为_A.8 B.15C.16 D.32()26如果某图的邻接矩阵是对角线元素均为零的上三角矩阵,则此图是_A.有向完全图 B.连通图C.强连通图 D.有向无环图()27对n个关键字的序列进行快速排序,平均情况下的空间复杂度为_A.O(1) B.O(logn)C.O(n) D.O(nlogn)()28对于哈希函数H(key)=key%13,被称为同义词的关键字是_A35和41 B.23和
20、39C.15和44 D.25和51()29.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为_。A、24B、48C、72D、53()30对包含N个元素的散列表进行检索,平均检索长度_A、为o(log2N)B、为o(N)C、不直接依赖于ND、上述三者都不是()31.向堆中插入一个元素的时间复杂度为_。A、O(log2n)B、O(n)C、O(1)D、O(nlog2n)()32下面关于图的存储的叙述中,哪一个是正确的。_A用相邻矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关B用相邻矩阵法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关C用邻接表
21、法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关D用邻接表法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关()33.输入序列为(A,B,C,D),不可能得到的输出序列是_.A.(A,B,C,D)B.(D,C,B,A)C.(A,C,D,B)D.(C,A,B,D)()34.在长度为n的顺序存储的线性表中,删除第i个元素(1in)时,需要从前向后依次前移_个元素。A、n-iB、n-i+1C、n-i-1D、i()35.设一个广义表中结点的个数为n,则求广义表深度算法的时间复杂度为_。A、O(1)B、O(n)C、O(n2)D、O(log2n)()36.假定一个顺序队列的队首和队尾
22、指针分别为f和r,则判断队空的条件为_。A、f+1=rB、r+1=fC、f=0D、f=r()37.从堆中删除一个元素的时间复杂以为_。A、O(1)B、O(log2n)C、O(n)D、O(nlog2n)()38若需要利用形参直接访问实参,则应把形参变量说明为_参数。A.指针B.引用C.值 D.变量()39在一个单链表HL中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行_。A.q一next=p一next;p一next=q;C.q一next=p一next;p一next=q;B.p一next=q一next;q=p;D.p一next=q一next;q一next=p;()40在一个顺序队
23、列中,队首指针指向队首元素的_位置。A.前一个B.后一个C.当前D.最后一个()41向二叉搜索树中插入一个元素时,其时间复杂度大致力_。AO(1)BO(1og2n)CO(n)DO(nlog2n)()42.算法指的是_A.计算机程序 B.解决问题的计算方法C.排序算法 D.解决问题的有限运算序列()43.线性表采用链式存储时,结点的存储地址_A.必须是不连续的 B.连续与否均可C.必须是连续的 D.和头结点的存储地址相连续()44.将长充为n的单链表链接在长度为m的单链表之后的算法的时间复杂度为_A.O(1) B.O(n)C.O(m) D.O(m+n)()45.由两个栈共享一个向量空间的好处是:
24、_A.减少存取时间,降低下溢发生的机率B.节省存储空间,降低上溢发生的机率C.减少存取时间,降低上溢发生的机率D.节省存储空间,降低下溢发生的机率()46.设数组DAtAm作为循环队列SQ的存储空间,front为队头指针,reAr为队尾指针,则执行出队操作后其头指针front值为_A.front=front+1B.front=(front+1)%(m-1)C.front=(front-1)%mD.front=(front+1)%m()47.如下陈述中正确的是_A.串是一种特殊的线性表B.串的长度必须大于零C.串中元素只能是字母D.空串就是空白串()48.若目标串的长充为n,模式串的长度为n/3,则执行模式匹配算法时,在最坏情况下的时间复杂度是_A.O(1) B.O(n)C.O(n2) D.O(n3)()49.一个非空广义表的表头_A.不可能是子表 B.只能是子表C.只能是原子 D.可以是子表或原子()50.从堆中删除一个元素的时间复杂度为_。A、O(1)B、O(n)C、O(log2n)D、O(nlog2n)()51.一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度