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

数据结构练习题习题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. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。
数据结构试题及答案(10套)

数据结构试题及答案(10套)数据结构试题及答案(10套)根据您的需求,我为您准备了10套数据结构试题及答案。
每套试题包含以下几个部分:选择题、填空题、编程题及答案解析。
下面是试题的具体内容:第一套试题:选择题:1. 在数据结构中,什么是栈?A. 先进先出(FIFO)的数据结构B. 后进先出(LIFO)的数据结构C. 随机访问的数据结构D. 无序排列的数据结构2. 以下哪种操作与队列的特性不相符?A. 入队操作B. 出队操作C. 查找操作D. 获取队首元素填空题:1. ______ 是一种动态集合,支持插入、删除和查找等操作。
2. 在二叉搜索树中,中序遍历的结果是________。
编程题:实现一个栈的数据结构,并包含以下操作:- push(x):将元素 x 压入栈中- pop():删除栈顶的元素并返回该元素- top():获取栈顶元素的值- empty():检查栈是否为空答案解析:选择题:B、C填空题:1. 集合 2. 升序序列编程题:略第二套试题:选择题:1. 以下哪个数据结构是一种广度优先搜索的应用?A. 栈B. 队列C. 堆D. 链表2. 在链表中,如果要删除一个节点,只给出该节点的指针,那么需要通过什么方式完成删除操作?A. 直接删除该节点B. 指向该节点的前一个节点的指针C. 指向该节点的后一个节点的指针D. 无法完成删除操作填空题:1. 树是一种________的数据结构。
2. 二叉树每个节点最多有______个子节点。
编程题:实现一个队列的数据结构,并包含以下操作:- enqueue(x):将元素 x 入队- dequeue():删除队首的元素并返回该元素- peek():获取队首元素的值- is_empty():检查队列是否为空答案解析:选择题:B、B填空题:1. 分层组织 2. 2编程题:略(以下部分省略)通过以上的题目,您可以对数据结构的知识点进行综合练习和复习。
每套试题包含了不同难度和类型的题目,能够帮助您全面了解和掌握数据结构的概念和操作。
数据结构试卷试题及答案

数据结构试卷试题及答案一、选择题(每题5分,共40分)1. 数据结构是研究数据元素的()A. 存储结构B. 处理方法C. 逻辑结构D. 所有以上内容答案:D2. 在数据结构中,通常采用()方式来表示数据元素之间的逻辑关系。
A. 顺序存储结构B. 链式存储结构C. 索引存储结构D. 散列存储结构答案:B3. 下面哪一个不是栈的基本操作?()A. 入栈B. 出栈C. 判断栈空D. 获取栈顶元素答案:D4. 下面哪一个不是队列的基本操作?()A. 入队B. 出队C. 判断队列空D. 获取队头元素答案:D5. 下面哪一个不是线性表的特点?()A. 有且只有一个根节点B. 每个节点最多有一个前驱和一个后继C. 数据元素类型相同D. 数据元素类型可以不同答案:D6. 在下列哪种情况中,使用链式存储结构比顺序存储结构更合适?()A. 数据元素经常插入和删除B. 数据元素大小不固定C. 数据元素个数不确定D. 所有以上情况答案:D7. 下面哪一个不是树的遍历方式?()A. 前序遍历B. 中序遍历C. 后序遍历D. 翻转遍历答案:D8. 在下列哪种情况中,使用散列存储结构比其他存储结构更合适?()A. 数据元素个数较少B. 数据元素查找频繁C. 数据元素插入和删除频繁D. 数据元素大小不固定答案:B二、填空题(每题5分,共30分)9. 栈是一种特殊的线性表,它的插入和删除操作都限定在表的一端进行,这一端称为______。
答案:栈顶10. 队列是一种特殊的线性表,它的插入操作在表的一端进行,这一端称为______,而删除操作在另一端进行,这一端称为______。
答案:队尾、队头11. 二叉树中的节点包括______和______。
答案:根节点、子节点12. 在图的存储结构中,邻接矩阵表示法用______个一维数组来表示图中各个顶点之间的关系。
答案:两个13. 散列存储结构中,关键码到存储地址的映射方法称为______。
数据结构练习题与答案

第1章绪论、判断题1.数据的逻辑结构与数据元素本身的内容和形式无关.〔,〕2.一个数据结构是由一个逻辑结构和这个逻辑结构上的一个根本运算集构成的整体.〔,〕3.数据元素是数据的最小单位.〔X〕4.数据的逻辑结构和数据的存储结构是相同的.〔X〕5.程序和算法原那么上没有区别,所以在讨论数据结构时可以通用.〔X〕6.从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类.〔,〕7.数据的存储结构是数据的逻辑结构的存储映象.〔,〕8.数据的物理结构是指数据在计算机内实际的存储形式.〔,〕9.数据的逻辑结构是依赖于计算机的.〔X〕10.算法是对解题方法和步骤的描述.〔,〕二、填空题1.数据有逻辑结构和存储结构两种结构.2.数据逻辑结构除了集合以外,还包括线性结构、树形结构和图形结翅.3.数据结构按逻辑结构可分为两大类,它们是线性结构和非线性结构.4.树形结构和图形结构合称为非线性结构.5.在树形结构中,除了树根结点以外,其余每个结点只有1个前驱结点.6.在图形结构中,每个结点的前驱结点数和后继结点数可以任意多会.7.数据的存储结构又叫物理结构.8.数据的存储结构形式包括顺序存储、链式存储、索引存储和散列存僮.9.线性结构中的元素之间存在一对二的关系.10.树形结构中的元素之间存在一对多的关系.11.图形结构的元素之间存在多对多的关系.12.数据结构主要研究数据的逻辑结构、存储结构和算法〔或运算〕3个方面的内容.13.数据结构被定义为〔D,R〕,其中D是数据的有限集合,R是D上的关系有限集合.14.算法是一个有穷指令的集合.15.算法效率的度量可以分为事先估算法和事后统计法.16.一个算法的时间复杂度是算法输入规模的函数.17.算法的空间复杂度是指该算法所消耗的存储空回,它是该算法求解问题规模的n的函数.18.假设一个算法中的语句频度之和为T〔n〕=6n+3nlog2n,那么算法的时间复杂度为O〔nlog*〕19.假设一个算法的语句频度之和为T〔n〕=3n+nlog,n2,那么算法的时间复杂度为O〔n2〕.20.数据结构是一门研究非数值计算的程序问题中计算机的操作对象,以及它们之间的关系和运算的学科.三、选择题1.数据结构通常是研究数据的〔A〕及它们之间的相互关系.A.存储结构和逻辑结构B.存储和抽象C.联系和抽象D.联系与逻辑2.在逻辑上可以把数据结构分成〔C〕.A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构.3.数据在计算机存储内表示时,物理地址和逻辑地址相同并且是连续的,称之为〔C〕.A.存储结构B.逻辑结构C.顺序存储结构D.链式存储结构4.非线性结构中的每个结点〔D〕.A.无直接前驱结点.B.无直接后继结点.A.正确性17 .以下时间复杂度中最坏的是A.O 〔1〕18 .以下算法的时间复杂度是〔for 〔i=0;i<n;i++〕for 〔j=o;i<n;j++〕 c[i][j]=i+j; A.O 〔1〕19 .算法分析的两个主要方面是A.空间复杂性和时间复杂性 C.可读性和文档性B.易读性 D). B.O(n) D).B.O(n) A).C. 健壮性D.高效性 C.O(log 2n) C.(log 2n)B.正确性和简明性D.数据复杂性和程序复杂性20.计算机算法必须具备输入、输出和〔C).A.计算方法B.排序方法D.O(n 2)D.O(n 2)C.解决问题的有限运算步骤D.程序设计方法A.分两局部,一局部存放结点的值,另一个局部存放表示结点间关系的指针. D.分两局部,一局部存放结点的值,另一局部存放结点所占单元素 每个结点只含有一个数据元素,所有存储结点相继存放在一个连续的存储空间里,这种存储结构称为14.每一个存储结点只含有一个数据元素,存储结点存放在连续的存储空间,另外有一组指明结点存储位置的表,该存储方式是〔C 〕存储方式.5.C.只有一个直接前驱结点和一个直接后继结点D.可能有多个直接前驱结点和多个直接后继结点链式存储结构所占存储空间〔A).B.只有一局部,存放结点的值.C.只有一局部,存储表示结点间关系的指针. 6. 7.算法的计算量大小称为算法的〔 A.现实性I数据的根本单位〔B 〕.A.数据结构IC 〕.B.难度B.数据元素C.时间复杂性C.数据项D.效率D.文件 9.〔A 〕结构. A.顺序结构 B.链式结构 C.索引结构 每一个存储结点不仅含有一个数据元素,还包含一组指针,该存储方式是〔A.顺序B.链式C.索引D.散列结构B 〕. D.散列10 .以下任何两个结点之间都没有逻辑关系的是〔B,线性结构D 〕.C.树形结构D.集合 11 .在数据结构中,与所使用的计算机无关的是〔B.存储结构C 〕.C.逻辑结构D.逻辑和存储结构 12.以下4种根本逻辑结构中,数据元素之间关系最弱的是〔A).B,线性结构C.树形结构D.图形结构 13.与数据元素本身的形式、内容、相对位置、个数无关的是数据的〔A).A.逻辑结构B.存储结构C.逻辑实现D.存储实现8. A.顺序 B.链式 C. 索引 D.散列 15.算法能正确的实现预定功能的特性称为算法的〔A.正确性B.易读性A).C. 健壮性D.高效性16.算法在发生非法操作时可以作出相应处理的特性称为算法的C).第2章线性表一、判断题1.线性表的链式存储结构优于顺序存储.〔X〕2.链表的每个结点都恰好包含一个指针域.〔X〕3.在线性表的链式存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻.〔,〕4.顺序存储方式的优点是存储密度大,插入、删除效率高.〔X〕5.线性链表的删除算法简单,由于当删除链中某个结点后,计算时机自动地将后续的各个单元向前移动.〔X〕6.顺序表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型.〔X〕7.线性表链式存储的特点是可以用一组任意的存储单元存储表中的数据元素.〔,〕8.线性表采用顺序存储,必须占用一片连续的存储单元.〔,〕9.顺序表结构适宜进行顺序存取,而链表适宜进行随机存取.〔X〕10.插入和删除操作是数据结构中是最根本的两种操作,所以这两种操作在数组中也经常使用.〔X〕二、填空题1.顺序表中逻辑上相邻的元素在物理位置上必须把生2.线性表中结点的集合是有限的,结点间的关系是一对一关系.3.顺序表相对于链表的优点是节省存储和随机存取.4.链表相对于顺序表的优点是插入、删除方便.5.当线性表的元素总数根本稳定,且很少进行插入和删除操作,但要求以最快速度存取线性表中的元素时,应采用顺序存储结构.6.顺序表中访问任意一个结点的时间复杂度均为O〔1〕Q7.链表相对于顺序表的优点是插入、删除方便;缺点是存储密度小._8.在双向链表中要删除结点*P,其时间复杂度为O〔1〕.9.在单向链表中要在结点*P之前插入一个新结点,需找到*P的直接前驱结点的地址,其查找的时间复杂度为O〔n〕Q10.在单向链表中需知道头指针才能遍历整个链表.11.线性表中第一个结点没有直接前驱,称为开始结点.12.在一个长度为n的顺序表中删除第i个元素,要移动n-i个元素.13.在一个长度为n的顺序表中,如果要在第i个元素前插入一个元素,要后移n-i+1个元素.14.在无头结点的单向链表中,第一个结点的地址存放在头指针中,而其他结点的存储地址存放在前趋结点的指针域中.15.线性表的元素总数不确定,且经常需要进行插入和删除操作,应采用链子存储结构.16.在线性表中的链式存储中,元素之间的逻辑关系是通过指针决定.17.在双向链表中,每个结点都有两个指针域,它们一个指向其前趋结点,另一个指向其后继结点.18.对一个需要经常进行插入和删除操作的线性表,采用链式存储结构为宜.19.双向链表中,设P是指向其中待删除的结点,那么需要执行的操作为p->prior->next=p->next;p->next->prior=p->prior20.在如下图的链表中,假设在指针P所在的结点之后插入数据域值为a和b的两个结点,那么可用语句S->next->next=p->next和P->next=S;来实现该操作.三、选择题1 .在具有n 个结点的单向链表中,实现〔A 〕的操作,其算法的时间复杂度都是O 〔n 〕.A.遍历链表或求链表的第i 个结点B.在地址为P 的结点之后插入一个结点C.删除开始结点D.删除地址为P 的结点的后继结点2 .设a 、b 、c 为3个结点,p 、10、20分别代表它们的地址,那么如下的存储结构称为〔B 〕.a10►b20►c 八C.双向循环链表D.双向链表 C.小于1D.不能确定m 个存储单元,假设第一个结点的地址为B,那么第i 个结点A.B+〔i-1〕XmB.B+iXmC.B-ixm5 .在有n 个结点的顺序表上做插入、删除结点运算的时间复杂度为〔A.O 〔1〕B.O 〔n 〕C.O 〔n 2〕6 .设front 、rear 分别为循环双向链表结点的左指针和右指针,那么指针尾元素的条件是〔D 〕. A.P==LB.P->front==L7 .两个指针P 和Q,分别指向单向链表的两个元素,A.P->next==Q->nextB.P->next==Q 8 .用链表存储的线性表,其优点是〔C 〕.A,便于随机存取B.花费的存储空间比顺序表少C.便于插入和删除D.数据元素的物理顺序与逻辑顺序相同 9 .在单链表中,增加头结点的目的是〔C 〕.A.使单链表至少有一个结点B.标志表中首结点的位置C.方便运算的实现D.说明该单链表是线性表的链式存储结构 10 .下面关于线性表的表达中,错误的选项是〔D 〕关系.A.顺序表必须占一片地址连续的存储单元B .顺序表可以随机存取任一元素 C.链表不必占用一片地址连续的存储单元D.链表可以随机存取任一元素11 .L 是线性表,LengthList 〔L 〕的值是5,经DelList 〔L,2〕运算后,LengthList 〔L 〕的值是〔C 〕.A.循环链表B.单向链表 3 .单向链表的存储密度〔C 〕.A.大于1B.等于14 .一个顺序存储的线性表,设每个结点占的地址为〔A 〕.D.B+(i+1)XmB ).D.O(log 2n)P 所指的元素是双循环链表L 的D.P->rear==L所指元素前驱的条件是(B)C.P==NULL P 所指元素是QC.Q->next==PD.P==QpA.2B.3C.4D.512.单向链表的示意图如下:指向链表Q 结点的前驱的指针是〔B 〕.C.Q13 .设p 为指向单循环链表上某结点的指针,那么*p 的直接前驱〔C 〕.A,找不到B.查找时间复杂度为O 〔1〕C.查找时间复杂度为O 〔n 〕D.查找结点的次数约为n14 .等概率情况下,在有n 个结点的顺序表上做插入结点运算,需平均移动结点的数目为〔8〕.A.nB.〔n-1〕/2C.n/2D.〔n+1〕/215 .在以下链表中不能从当前结点出发访问到其余各结点的是〔C 〕.19 .以下关于线性表的论述,不正确的为〔C 〕.A.线性表中的元素可以是数字、字符、记录等不同类型B.线性顺序表中包含的元素个数不是任意的C.线性表中的每个结点都有且仅有一个直接前驱和一个直接后继D.存在这样的线性表,即表中没有任何结点 20 .在〔B 〕的运算中,使用顺序表比链表好.A.插入B.根据序号查找C.删除B.P A.双向链表 B.单循环链表C.单向链表D.双向循环链表 16 .在顺序表中,只要知道〔D 〕,就可以求出任一结点的存储地址. A.基地址B.结点大小C.向量大小17 .在双向链表中做插入运算的时间复杂度为〔A 〕.A.O 〔1〕B.O 〔n 〕C.O 〔n 2〕18 .链表不具备的特点是〔A 〕.D.基地址和结点大小D.O 〔log 2n 〕A.随机访问B.不必事先估计存储空间C. 插入删除时不需要移动元素D.所需空间与线性表成正比D.根据元素查找、判断题1 .栈是运算受限制的线性表.〔,〕2 .在栈空的情况下,不能作出栈操作,否那么产生下溢.〔,〕3 .栈一定是顺序存储的线性结构.〔X 〕4 .栈的特点是“后进先出〞.〔,〕5 .空栈就是所有元素都为0的栈.〔X 〕6 .在C 〔或C++〕语言中设顺序栈的长度为MAXLEN,那么top=MAXLEN 时表示栈满.〔X 〕7 .链栈与顺序栈相比,其特点之一是通常不会出现栈满的情况.〔,〕8 .一个栈的输入序列为:A,B,C,D,可以得到输出序列:C,A,B,D .〔X 〕9 .递归定义就是循环定义.〔x 〕10 .将十进制数转换为二进制数是栈的典型应用之一.〔,〕 二、填空题1 .在栈结构中,允许插入、删除的一端称为栈顶.2 .在顺序栈中,当栈顶指针top=-1时,表示栈空.3 .在有n 个元素的栈中,进栈操作时间复杂度为O 〔1〕.4 .在栈中,出栈操作时间复杂度为O 〔1〕.5 .表达式,求它的后缀表达式是栈的典型应用.6 .在一个链栈中,假设栈顶指针等于NULL,那么表示栈空.7 .向一个栈顶指针为top 的链栈插入一个新结点*p 时,应执行p->next=top;top=p ;操作. 8 .顺序栈S 存储在数组S->data[0-MAXLEN-1]中,进栈操作时要执行的语句有:S->top -.〔或S->top+1〕 S->data[S->top]=x9 .链栈LS,指向栈顶元素的指针是LS->next .10 .从一个栈删除元素时,首先取出栈顶元素,然后再移动栈顶指针. 11 .由于链栈的操作只在链表的头部进行,所以没有必要设置头结点. 12 .顺序栈S,在对S 进栈操作之前首先要判断栈是否满. 13 .顺序栈S,在对S 出栈操作之前首先要判断栈是否空. 14 .假设内在空间充足,链栈可以不定义栈满运算. 15 .链栈LS 为空的条件是LS->next=NULL . 16 .链栈LS 的栈顶元素是链表的首元素. 17 .同一栈的各元素的类型相同.18 .假设进栈的次序是A 、B 、C 、D 、E,执行3次出栈操作以后,栈顶元素为B . 19 .A+B/C-D*E 的后缀表达式是ABC/+DE*-.20 .4个元素A 、B 、C 、D 顺序进S 栈,执彳T 两次Pop 〔S,x 〕运算后,x 的值是C . 三、选择题第3章栈1 .插入和删除操作只能在一端进行的线性表,称为〔A.队列B.循环队列2 . C 〕.C.栈D.循环栈D 〕.设有编号为1,2.3,4的4辆列车,顺序进入一个栈结构的站台,以下不可能的出站顺序为〔A.1234B,12433.如果以链表作为栈的存储结构,那么出栈操作时〔A.必须判别栈是否满B.必须判别栈是否为空4.元素A、B、C、D依次进栈以后,栈顶元素是〔A.AB.BC.1324D,1423B〕.C.必须判别栈元素类型D.栈可不做任何判别D〕C.CD.D5 .顺序栈存储空间的实现使用〔B 〕存储元素.A.链表B.数组C.循环链表D.变量6 .在C 〔或C++〕语言中,一个顺序栈一旦被声明,其占用空间的大小〔A 〕.A,已固定B,不固定C.可以改变D.动态变化7 .带头结点的链栈LS 的示意图如下,栈顶元素是〔A 〕.8 .链栈与顺序栈相比,有一个比拟明显的优点是〔B 〕.9 .从一个栈顶指针为top 的链栈中删除一个结点时,用x 保存被删除的结点,应执行以下〔d 〕命令.A.x=top;top->next;B.top=top->next;x=top->dataC.x=top->data;D.x=top->data;top=top->next 10 .在一个栈顶指针为HS 的链栈中,将一个S 指针所指的结点入栈,应执行以下〔B 〕命令.B.S->next=HS->next;HS->next=S;A.插入操作更加方便B.通常不会出现栈满的情况C.不会出现栈空的情况D.删除操作更加方便 A.HS->next=S C.S->next=HS->next;HS=S;D.S->next=HS=HS->next11 .4元素按A 、B 、C 、D 顺序进S 栈,执彳T 两次Pop 〔S,x 〕运算后,栈顶元素的值是〔B 〕.B.B12 .元素A 、B 、C 、D 依次进栈以后,栈底元素是〔A 〕.A.AB.BC.CD.D13 .经过以下栈的运算后,再执行ReadTop 〔s 〕的值是〔A 〕.InitStack(s);Push(s,a);Push(s,b);Pob(s); A.aB.bC.1D.0 14.经过以下栈的运算后,x 的值是〔B 〕.InitStack(s)(初始化栈);Push(s,a);Push(s,b);ReadTop(s) ;Pob(s,x);A.aB.bC.1D.015 .经过以下栈的运算后,x 的值是(B ).InitStack(s)(初始化栈);Push(s,a);Pob(s,x);Push(s,b);Pob(s,x); A.aB.bC.1D.016 .经过以下栈的运算后,SEmpty(s)的值是(C ).InitStack(s)(初始化栈);Push(s,a);Push(s,b);Pob(s,x);Pob(s,x);LSA.AB.BC.CD.D第4章队列、判断题1 .队列是限制在两端进行操作的线性表.〔,〕2 .判断顺序队列为空的标准是头指针和尾指针都指向同一个结点.〔,〕3 .在链队列上做出队操作时,会改变front 指针的值.〔X 〕4 .在循环队列中,假设尾指针rear 大于头指针front,其元素个数为rear-front .〔V 〕5 .在单向循环链表中,假设头指针为h,那么p 所指结点为尾结点的条件是p=h .〔X 〕6 .链队列在一定范围内不会出现队满的情况.〔,〕7 .在循环链队列中无溢出现象.〔X 〕8 .栈和队列都是顺序存储的线性结构.〔X 〕9 .在队列中允许删除的一端称为队尾.〔X 〕10 .顺序队和循环队关于队满和队空的判断条件是一样的.〔x 〕二、填空题1 .在队列中存取数据应遵循的原那么是先进先出.2 .队列是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算线性表.3 .在队列中,允许插入的一端称为队尾.4 .在队列中,允许删除的一端称为队首〔或队头〕.5 .队列在进行出队操作时,首先要判断队列是否为空.6 .顺序队列在进行入队操作时,首先在判断队列是否为满.7 .顺序队列初始化后,初始化后,front=rear=-1.8 .解决顺序队列“假溢出〞的方法是采用循环队列.9 .循环队列的队指针为front,队尾指针为rear,那么队空的条件为front==rear .10 .链队列LQ 为空时,LQ->front->next=NULL .11 .设长度为n 的链队列用单循环表表示,假设只设头指针,那么入队操作的时间复杂度为O 〔n 〕.12 .设长度为n 的链队列用单循环表表示,假设只设尾指针,那么入队操作的时间复杂度为O 〔1〕.13 .在一个链队列中,假设队首指针与队尾指针的值相同,那么表示该队列为空.14 .设循环队列的头指针front 指向队首元素,尾指针rear 指向队尾元素后的一个空闲元素,队列的最大空间为MAXLEN,那么队满标志为front==〔rear+1〕%MAXLEN .15 .在一个链队列中,假设队首指针为front,队尾指针为rear,那么判断队列只有一个结点的条件为front==rear 或front!.16 .向一个循环队列中插入元素时,首先要判断队尾指针,然后再向指针所指的位置写入新的数据.17 .读队首元素的操作不改变或不影响队列元素的个数. 17. A.aB.b 向顺序栈中输入元素时〔B 〕.A.先存入元素,后移动栈顶指针 C.1 D.018. C.谁先谁后无关紧要 初始化一个空间大小为 19. 20. A.0 设有一个入栈的次序 A. EDCBA 设有一个顺序栈S, 5的顺序栈S 后, B. -1 A 、B 、C 、D 、E, 元素A 、 E 、A,那么栈的容量至少应是〔 B. B.DECBA B 、C 、D 、 A ).4 B.先移动栈顶指针,后存入元素D.同时进行S->top 的值是〔B 〕. C.不再改变 那么栈不可能的输出序列是〔 C.DCEAB D.动态变化〕°D.ABCDEE 、F 依次进栈,如果6个元素出栈的顺序是B 、D 、D.6C 、F 、18.设循环队列的容量为40〔序号0〜39〕,现经过一系列的入队和出队的运算后,front=11,rear=19,那么循环队列中还有8个元素.19.队列Q,经过以下运算:InitQueue〔Q〕〔初始化队列〕;InQueue〔Q,a〕;InQueue〔Q,b〕;OutQueue〔Q,x〕;ReadFront〔Q,x〕;QEmpty〔Q〕;后的值是8.20.队列Q经过InitQueue〔Q〕〔初始化队列〕;InQueue〔Q,a〕;InQueue〔Q,b〕;ReadFront〔Q,x〕后,x的值是a.三、选择题1.队列是限定在〔D〕进行操作的线性表.A.中间者B.队首C.队尾D.端点2.队列中的元素个数是〔B〕.A.不变的B.可变的C.任意的D.03.同一队列内的各元素的类型〔A〕.13.队列Q,经过以下运算后,x 的值是〔B 〕.InitQueue 〔Q 〕〔初始化队列〕;InQueue 〔Q,a 〕;InQueue 〔Q,b 〕;15 .设链栈中结点的结构:data 为数据域,next 为指针域,且top 是栈顶指针,假设想在链栈的栈顶插入一个由指针s 所指的结点,那么应执行以下〔A 〕操作.A.s->next=top->next;top->next=s;B.top->next=s;C.s->next=top;top->next;D.s->next=top;top=s;16 .带头结点的链队LQ 示意图如下,链队列的队头元素是〔A.AB.BC.CD.D17 .带头结点的链队列LQ 示意图如下,指向链队列的队头指针是〔C 〕.4.5.6.7.8.9. A.必须一致B.不能一致 队列是一个〔C 〕线性表结构. A.不加限制的B.推广了的C.可以不一致 C.加了限制的 当利用大小为n 的数组顺序存储一个队列时,该队列的最后一个元素的下标为〔 A.n-2 B.n-1 C.nD.不限制 D.非 B). D.n+1 一个循环队列一旦说明,其占用空间的大小〔 A.已固定B.可以变动 循环队列占用的空间〔A 〕. A). C.不能固定 D.动态变化 A.必须连续 存放循环队列元素的数组 A.0〜10 假设进队的序列为A 、B 、 A.B 、C 、D 、A B.不必连续 data 有10个元素,那么 B.0〜9 C 、D,那么出队的序列是〔 C.不能连续 D.可以不连续 data 数组的下标范围是〔B 〕. 10. 4个元素按 A.A 11. 4个元素按 A.A 12. 4个元素按 后的值是〔 A.0A 、 A 、 A 、 B).B 、 B 、 B 、C 、 C 、 C 、 B.A 、C 、D 顺序连续进队 B.B D 顺序连续进队 B.B D 顺序连续进队 B 、D C.1〜9 C). C.A 、B 、C 、 那么队尾元素是(D) C.C 执行一次QutQueue(Q) C.C 执行4次QutQueue(Q) B.1 C.2 D.1〜10D.C 、B 、D 、AD.D操作后,队头元素是〔B 〕.D.D操作后,再执行QEmpty 〔Q 〕D.3 OutQueue(Q,x);ReadFront(Q,x)A.aB.b14.循环队列SQ 队满的条件是(B).A.SQ->rear==SQ->front C.SQ->rear==0C.0D.1B.(SQ->rear+1)%MAXLEN==SQ->front D.SQ->front==0 A ).LQ->frontLQ->rearLQ->rear A.LQ->frontB.LQ->rearC.LQ->front->nextD.LQ->rear->next18 .带头结点的链队列LQ 示意图如下,在进行进队的运算时指针LQ->frnot(A).19 .队歹UQ,经过以下运算后,再执行QEmpty 〔Q 〕的值是〔C 〕. A.始终不改变 B.有时改变 C.进队时改变LQ->rear D.出队时改变 LQ->frontInitQueue(Q)(ReadQueue(Q,x)A.a初始化队列〕;InQueue〔Q,a〕;InQueue(Q,b) ;OutQueue(Q,x);B.b20.假设用一个大小为6数组来实现循环队列,且当前C.0front和rear的值分别为D.13和0,当从队列中删除一个元素,再参加两个元素后, A.5和1 front和rear的值分别为〔B〕.B.4和2C.2和4D.1和510第5章串一、判断题1.串是n个字母的有限序列.〔X〕2.串的数据元素是一个字符.〔,〕3.串的长度是指串中不同字符的个数.〔X〕4.如果两个串含有相同的字符,那么说明它们相等.〔X〕5.如果一个串中所有的字母均在另一个串中出现,那么说明前者是后者的子串.〔X〕6.串的堆分配存储是一种动态存储结构.〔,〕7.“DT〞是“DATA〞的子串.〔X〕8.串中任意个字符组成的子序列称为该串的子串.〔X〕9.子串的定位运算称为模式匹配.〔,〕10.在链串中为了提升存储密度,应该增大结点的大小.〔,〕二、填空题1.由零个或多个字符组成的有限序列称为字符串〔或串〕.2.字符串按存储方式可以分为顺序存储、链接存储和堆分配存储.3.串的顺序存储结构简称为顺序串.4.串顺序存储非紧凑格式的缺点是空间利用率低.5.串顺序存储紧凑格式的缺点是对串的字符处理效率低.6.串链接存储的优点是插入、删除方便,缺点是空间利用率.7.在C或C++语言中,以字符\0表示串值的终结.8.空格串的长度等于空格的个数.9.在空串和空格串中,长度不为0的是空格串.10.两个串相等是指两个串长度相等,且对应位置的字符都相同.11.设“S=MyMusic〞,贝ULenStr〔s〕=8.12.两个字符串分别为;S I="Todayis"、S="30July,2022",ConcatStr〔S1,S2〕的结果是Todayis30July,2022.13.求子串函数SubStr〔"Todayis30July,2022",13,4〕的结果是July.14.在串的运算中,EqualStr〔aaa,aab〕的返回值<0.15.在串的运算中,EqualStr〔aaa,aaa〕的返回值0.16.在子串的定位运算中,被匹配的主串称为目标串,子串称为模式.17.模式匹配成功的起始位置称为有效位移.18.设S="abccdcdccbaa",T="cdcc",贝U第6次匹配成功.19.设S="c:/mydocument/text1.doc",T="mydont",那么字符定位的位置为0.20.假设n为主串长度,m为子串长度,n>>m,那么模式匹配算法最坏情况下的时间复杂度为〔n-m+1〕*m.1.串是和种特殊的线性表,其特殊表达在〔B〕.A.可能顺序存储B.数据元素是一个字符C.可以链接存储D.数据元素可以是多个字符2.某串的长度小于一常数,那么采用〔B〕存储方式最节省空间.A.链式B.顺序C.堆结构D.无法确定3.以下论述正确的选项是〔C〕.A.空串与空格串是相同的B."tel"是“Teleptone〞的子串C.空串是零个字符的串D.空串的长度等于14.以下论述正确的选项是〔B〕.A.空串与空格串是相同的B."ton"是“Teleptone 〞的子串C.空格串是有空格的串D.空串的长度等于15 .以下论断正确的选项是〔A 〕.A,全部由空格组成的串是空格串B."BEUIJING"是“BEIJING 〞的子串C.something"<"Something"D.BIT="BITE6 .设有两个串S I 和S 2,那么EqualStr 〔S I ,S 2〕运算称作〔D 〕.A.串连接B.模式匹配C.求子串D.串比拟7 .串的模式匹配是指〔D 〕.A.判断两个串是否相等B.对两个串比拟大小C.找某字符在主串中第一次出现的位置D.找某子串在主串中第一次出现的第一个字符位置8 .假设字符串"ABCDEFG 〞采用链式存储,假设每个字符占用1个字节,每个指针占用2个字节.那么该字符串的存储密度为〔D 〕.A.20%B.40%C.50%D.33.3%9 .假设字符串"ABCDEFG 〞采用链式存储,假设每个指针占用2个字节,假设希望存储密度为50%,那么每个结点应存储〔A 〕个字符.A.2B.3C.4D.510 .设串S I ="IAM",S 2="ASDUDENT",那么ConcatStr 〔S 1,S 2〕=〔B 〕.A."IAM"B."IAMASDUDENT"C."IAMASDUDENT 〞D."ASDUDENT11 .设S="〞,贝ULenStr 〔S 尸〔A 〕.A.0B.1C.2D.312 .设目标串T="AABBCCDDE",模式P="ABCDE",那么该模式匹配的有效位移为〔A 〕.A.0B.1C.2D.313 .设目标串T="AABBCCDDEEFF",模式P="CCD",那么该模式匹配的有效位移为〔D 〕.A.2B.3C.4D.514 .设目标串T="aabaababaabaa ,模式P="abab ,模式匹配算法的外层循环进行了〔D 〕次.LenStr 〔S2〕,2〕〕的结果串为〔D 〕. 15. 16. 17. 18. 19. A.1 B.9 模式匹配算法在最坏情况下的时间复杂是〔 A.O(m)S="morningB.O(n)C.4D.5 D). C.O(m+n) ,执行求子串函数SubSur 〔S,2,2〕后结果为〔B 〕. A .〞mo 〞 S 1="good,S2"morning A.〞goodmorning 〞D.〞GOODMORNING S 1="good A.〞good 设串S 1=" ,82="morning ABCDEFG:S B. or 〞 B.〞 执行函数 B.〞ning 〞"PQRST 〞, C in ConcatStr(Sgoodmorning 〞D.O(mxn) D .〞ng 〞1,S 2)后结果为(A). C.〞GOODMORNING 〞 SubSur(S 2,4,LenStr(S 1))后的结果为(B).C go 贝UConcatStr(SubStr(S1, 2,D.〞 LenStr(S 2)), _〞 morn SubStr(S1,。
数据结构试卷B

浙江科技学院考试试卷浙江科技学院2010 -2011 学年第 2 学期考试试卷 B 卷考试科目 数据结构 考试方式 闭 卷 完成时限 120分钟 拟题人 审核人 批准人 年 月 日 理学 院 09 年级 信息与计算科学 专业一、是非题(每小题1分,共10分)正确的在括号内打√,错误的打×.( )1. 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理.( )2. 数据结构是相互之间存在一种或多种关系的数据元素的集合,数据元素相互之间的关系称为结构.( )3. 对于抽象数据类型而言,不论其内部结构变化如何,只要它的数学特性不变,都不影响其外部的使用.( )4. 线性表的逻辑顺序与物理顺序总是一致的.( )5. 每种数据结构都应具备三种基本运算:插入、删除、搜索. ( )6. 空串与由空格组成的串没有区别. ( )7. 完全二叉树就是满二叉树.( )8. 已知一棵二叉树的前序序列和中序序列,则可以唯一地构造出该二叉树. ( )9. 带权连通图的最小生成树的权值之和一定小于它的其他生成树的权值之和. ( )10. 内部排序要求数据一定要以顺序方式存储.二、选择题(单项选择,每小题2分,共40分) 请将你认为正确的选项填入下表中。
专业班级 学号 姓名………………………………………………………………………装订线……………………………………………………………………………………1. 算法在发生非法操作时可以作出处理的特性称为().A. 正确性B. 易读性C.高效率 D. 健壮性2. 执行下面程序段时,执行S语句的次数为().for (int i = 1; i <= n; i ++)for (int j = 1; j <= i; j ++) S;A. 2nB. n/2C. n(n+1)D. n(n+1)/23. 数据结构的定义为(D, S),其中S是()的集合.A. 算法B. 数据元素C. 关系D. 逻辑结构4. 有六个元素按照6,5,4,3,2,1的顺序进栈,则下列()项不是合法的出栈序列.A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 4 1 5 65. 广义表A(a),则表尾为().A. aB. (())C. 空表D. (a)6. 二叉树中第4层上的结点最多为().A. 8B. 15C.16D. 327. 对右图所示二叉树,进行后序遍历的结果是().A. ABCDEFB. DBEAFCC. ABDECFD. DEBFCA8. 假设以行序为主序存储二维数组A = array[1..100,1..100]设每个数据元素占两个存储单元,基地址为10,则Loc[5,5]().A. 808B. 818C. 1010D. 10209. 具有35个结点的完全二叉树的深度为().A. 5B. 6C. 7D. 810. 若一棵二叉树具有9个度为2的结点,则该二叉树的度为0的结点个数是().A. 9B. 10C. 11D. 不确定11. 在有n个结点的二叉树的二叉链表表示中,空指针数为().A. 不定B. n+1C. nD. n-112. 具有n个结点的二叉树,拥有指向孩子结点的分支数目是().A. n-1B. nC. n+1D. 2n13. 在完全二叉树中,若一个结点是叶子结点,则它没有().A. 左孩子结点B. 右孩子结点C. 左孩子结点和右孩子结点D. 左孩子结点,右孩子结点和兄弟结点14. 有m个叶子结点的哈夫曼树,其结点总数是().A. 2m-1B. 2mC. 2m+1D. 2(m+1)15. 任何一个无向连通图的最小生成树().A. 只有一棵B. 有一棵或多棵C. 一定有多棵D. 可能不存在16. 下列查找方法中,()适合用于查找有序单链表.A. 顺序查找B. 二分查找C. 分块查找D. 哈希查找17. 在长度为100的有序线性表中进行顺序查找,最坏情况下需要比较的次数为().A. 99B.100C. 101D. 018. 对关键码序列28,16,32,12,60,2,5,72快速排序,若选28为枢轴记录关键字,则从小到大一次划分结果为().A. (2,5,12,16)28(60,32,72)B. (5,16,2,12)28(60,32,72)C. (2,16,12,5)28(60,32,72)D. (5,16,2,12)28(32,60,72)19. 下列排序算法中,()排序在一趟结束后不一定能选出一个元素放在其最终位置上.A. 选择B. 冒泡C. 归并D. 堆20. 一个序列中有10000个元素,若只想得到其中前10个最小元素,最好采用的排序方法是().A. 快速排序B. 堆排序C. 插入排序D. 二路归并排序三、填空题(每空1分,共15分)1. 在线性结构中,____________具有先进先出特性,___________具有先进后出特性.2. 有向图的存储结构有______________、_____________、_____________等方法.3. 具有10个顶点的连通图的深度优先生成树,其边数为_________________.4. 已知U = ’xyxyxyxxyxy’,t = ’xxy’,StrAssign(S, U),StrAssign(V, Substring(S, Index(s,t), StrLength(t)+1)),StrAssign(m,’ww’)求Replace(S, V, m)=___________________.5. 具有相同函数值的关键字对于哈希函数来说称作__________________.6. 已知一组待排序列的记录关键字初始排序为:56,34,58,26,79,52,64,37,28,84,57.若选中第一个记录关键字为枢轴记录,则一趟快速排序的结果为:_____________________;若建立大根堆,则初始堆为____________________.7. 由A, B, C, D, E五个结点构成的二叉树,共有_________种互不相似的结构.8. 长度为225的表,采用分块查找法,每块的最佳长度是______,应分为______块,若每块的长度为10,则平均查找长度为_________________.9. 快速排序在平均情况下的时间复杂度为_____________.四、应用题(共30分)1. (8分)已知一棵二叉树的中序序列和后序序列如下,求该二叉树的高度(假定空树的高度为-1)和度为2、度为1及度为0的的结点个数.中序序列:CBDEAGIHJF;后序序列:CEDBIJHGFA2. (7分)假设用于通信的电文仅由8种字符母{A,B,C,D,E,F,G,H}组成,它们在电文中出现的频率分别为{0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10}。
(完整版)数据结构练习题及参考答案

数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。
A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。
A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。
for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;A、 O(m2)B、 O(n2)C、 O(m*n)D、 O(m+n)5. 执行下面程序段时,执行S语句的次数为____________。
for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;A、 n2B、 n2/2C、 n(n+1)D、 n(n+1)/26. 下面算法的时间复杂度为____________。
int f( unsigned int n ) {if ( n==0 || n==1 ) return 1; else return n*f(n-1);}A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。
2. 数据的存储结构被分为__________、_________、__________和__________四种。
3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。
4. 一种抽象数据类型包括__________和__________两个部分。
5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。
考题解答09年福建专升本C和数据结构

09年专升本C考题解答(共100分)一、单项选择题(30小题,每小题2分,共60分)1、下列选项中,合法的C语言标识符是()。
A. my_nameB. $234C. my nameD. 23b标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
标识符不能使用C语言的关键字(见教材后清单)2、已知:int x=5; 执行完printf(“%d”, ++x);后。
输出的结果是()。
A. 4B. 5C. 6D. 不确定注意++x和x++的区别3、已知:int x=5,y=3; 则逻辑表达式(x-y)&&(y-3)的值为()。
A. 7B. 2C. 1D. 0(x-y)&&(y-3)=(5-3) && (3-3) =2 && 0 =04、已知:int a=3,b=6,c=8; 则执行完语句:a=a>b?a: (b<c?b:c); 后,a的值为()。
A. 3B. 6C. 8D. 17a=a>b?a: (b<c?b:c)= 3>6?a: (6<8?b:c) = 65、如下程序执行后的结果是()。
main(){ int a=11, b=3;printf(“%d, %d”, a/b, a%b);}A. 3,2B. 11,2C. 3,3D. 3.3,2a/b=11/3=3(整除), a%b=11%3=26、如下程序运行时输入“B回车”,输出结果是()。
mian(){ char c;scanf (“%c”, &c);switch (c){ case …A‟: printf(“5”);case …B‟: printf(“4”);case …C‟: printf(“3”);case …D‟: printf(“2”);default: printf(“1”);}}A. 4B. 43C. 432D. 4321注意没有break语句7、已知字符‟a‟的ASCII码为97,‟A‟的ASCII码为65,则如下程序的运行结果是()。
科文学院09z网络数据结构期末复习资料--简答题

科文学院09z 网络数据结构期末复习资料三、简答题1、已知一个6⨯5稀疏矩阵如下所示,试:⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡--007000000520000000100000010000 (1)写出它的三元组线性表;(2)给出三元组线性表的顺序存储表示。
(1)((1,5,1),(3,2,-1),(4,5,-2),(5,1,5),(6,3,7))(2)三元组线性表的顺序存储表示如下所示:⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡--7265152541231515562、求网的最小生成树有哪些算法?它们的时间复杂度分别下多少,各适用何种情况? 求网的最小生成树可使用Prim 算法,时间复杂度为O(n 2),此算法适用于边较多的稠密图,也可使用Kruskal 算法,时间复杂度为O(eloge),此算法适用于边较少的稀疏图。
3、对于如下图所示的有向图若存储它采用邻接表,并且每个顶点邻接表中的边结点都是按照终点序号从小到大的次序的,试写出:(1)从顶点v1出发进行深度优先搜索所得到的深度优先生成树; (2)从顶点v2出发进行广度优先搜索所得到的广度优先生成树。
(1)DFS :v1 v2 v3 v4 v5 (2)BFS :v2 v3 v4 v5 v14、已知一个图的顶点集V 和边集E 分别为: V={1,2,3,4,5,6,7};E={<2,1>,<3,2>,<3,6>,<4,3>,<4,5>,<4,6>,<5,1>,<5,7>,<6,1>,<6,2>,<6,5>}; 若存储它采用邻接表,并且每个顶点邻接表中的边结点都是按照终点序号从小到大的次序的,试给出得到的拓扑排序的序列。
拓扑排序为: 4 3 6 5 7 2 15、对于序列{8,18,6,16,29,28},试写出堆顶元素最小的初始堆。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.1.数据的不可分割的基本单位是( D )。
A.元素B.结点C.数据类型D.数据项2.算法是指( C )。
A.计算方法B.排序方法C.解决问题的有限运算步骤D.查找方法3.顺序存储结构中数据元素之间的逻辑关系是由(C )表示的A 线性结构B 非线性结构C 存储位置D 指针4.单循环链表的主要优点是(B )。
A 不再需要头指针了B 从表中任一结点出发都能扫描到整个链表;C 已知某个结点的位置后,能够容易找到它的直接前趋;D 在进行插入、删除操作时,能更好地保证链表不断开。
5.一个栈的入栈序列是1,2,3,4,5,则栈的不可能的输出序列是(C )。
A 54321B 45321C 43512D 123456.常对数组进行的两种基本操作是( B )A.建立和删除B.索引和修改C.插入和修改D.插入和索引7.算法分析的两个主要方面是(A )。
A空间性能和时间性能B正确性和简明性C 可读性和文档性D 数据复杂性和程序复杂性8.在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印缓冲区,该缓冲区应该是一个(B )结构。
A 栈B 队列C 数组D 线性表9.二维数组A的每个元素是由6个字符组成的串,行下标的范围从0~8,列下标的范围是从0~9,则存放A至少需要(D)个字节。
A 90B 180C 240D 54010.下面(C)不属于特殊矩阵。
A 对角矩阵B 三角矩阵C 稀疏矩阵D 对称矩阵13.算法在发生非法操作时可以作出处理的特性称为(A )。
A 健壮性B 确定性C 可行性D 正确性16.算法指的是(A)。
A 对特定问题求解步骤的一种描述,是指令的有限序列。
B 计算机程序C 解决问题的计算方法D 数据处理17.算法分析的目的是( C )。
A.找出数据结构的合理性B.研究算法中输入和输出的关系C.分析算法的效率以求改进D.分析算法的易读性和文档性18.若某线性表中最常用的操作是取第i 个元素和找第i个元素的前趋,则采用(A)存储方法最节省时间。
(随机存储)A 顺序表B 单链表C 双链表D 单循环链表19.在一个单链表中,已知q所指结点是p所指结点的直接前驱,若在q和p 之间插入s所指结点,则执行(B )操作。
A s->next=p->next; p->next=s;B q->next=s; s->next=p;C p->next=s->next; s->next=p;D p->next=s; s->next=q;20.若一个栈的输入序列是1,2,3,…,n,输出序列的第一个元素是n,则第i个输出元素是(D )。
A 不确定B n-iC n-i-1D n-i+121.设有两个串p和q,求q在p中首次出现的位置的运算称作(B )。
A 连接B 模式匹配C 求子串D 求串长22.将数组称为随机存取结构是因为(B)。
A 数组元素是随机的B 对数组任一元素的存取时间是相等的C 随时可以对数组进行访问D 数组的存储结构是不定的23.一个高度为h的满二叉树共有n个结点,其中有m个叶子结点,则有(D)成立。
A n=h+mB h+m=2nC m=h-1D n=2m-124.队列的操作原则是( B )。
A.先进后出B.先进先出C.只能进行插入D.只能进行删除26.在栈中,栈顶指针top指示( B )。
A.栈底元素的位置B.栈顶元素的位置C.栈中任何元素的位置D.以上均不对27.将数组称为随机存取结构是因为(B)。
A.数组元素是随机的B.对数组任一元素的存取时间是相等的C.随时可以对数组进行访问D.数组的存储结构是不定的28.下面(C )不是算法所必须具备的特性。
A 有穷性B 确切性C 高效性D 可行性29.在一棵树中,( B )没有后继结点。
A.根结点B.叶子结点C.分支结点D.所有结点31.若链表中最常用的操作是在最后一个结点之后插入一个结点和删除第一个结点,则采用(D )存储方法最节省时间。
A 单链表B 带头指针的单循环链表C 双链表D 带尾指针的单循环链表32.设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5、e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2、e4、e3、e6、e5、e1,则栈S的容量至少应该是(C)。
A 6B 4C 3D 233.二维数组A的每个元素是由6个字符组成的串,行下标的范围从0~8,列下标的范围是从0~9, A的第8列和第5行共占(C)个字节。
A 114B 54C 108D 54034.在一棵树中,每个结点最多有( B ) 个前驱结点。
A.0 B.1 C.2 D.任意多个35.一个队列的入队顺序是1,2,3,4,则队列的输出顺序是(B )。
A 4321B 1234C 1432D 324136.下面的说法中,不正确的是(C)。
A 数组是一种线性结构B 数组是一种定长的线性结构C 除了插入与删除操作外,数组的基本操作还有存取、修改、检索和排序等D 数组的基本操作有存取、修改、检索和排序等,没有插入与删除操作37.队列的操作原则是( B )。
A.先进后出B.先进先出C.只能进行插入D.只能进行删除38.如果结点A有3个兄弟,B是A的双亲,则结点B的度是(D)。
A 1B 2C 3D 4*39.静态查找与动态查找的根本区别在于(B )。
A 它们的逻辑结构不一样B 施加在其上的操作不同C 所包含的数据元素的类型不一样D 存储实现不一样40.在一个具有n个单元的顺序栈中,假定以地址低端(即下标为0的单元)作为栈底,以top作为栈顶指针,当出栈时,top的变化为(B )。
A 不变B top=top-1C top=0D top=top+142.算法能正确地实现预定功能的特性称为( A ) 。
A.正确性B.易读性C.健壮D.高效率44.线性表的顺序存储结构是一种(A )的存储结构。
A 随机存取B 顺序存取C 索引存取D 散列存取45.假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。
则表示该遗产继承关系的最合适的数据结构应该是(B )。
A 树B 图C 线性表D 集合46.数组通常具有两种基本运算,即(B )A.创建和删除B.读取和修改C.插入和删除D.排序和查找47.线性表采用链接存储时,其地址(D )。
A 必须是连续的B 部分地址必须是连续的C 一定是不连续的D 连续与否均可以49.线性表的第一个元素叫做(A )。
A.表头元素B.表尾元素C.前驱元素D.后继元素50.线性表的最后一个元素叫做( B )。
A.表头元素B.表尾元素C.前驱元素D.后继元素51.设二叉树有n个结点,则其深度为(D )。
A n-1B nC log2n向下取整+1D 不能确定52.G是一个非连通无向图,共有28条边,则该图至少有(D )个顶点。
A 6B 7C 8D 953.在以下哪种情况下,不能执行出栈操作?(B)A.栈满B.栈空C.任何情况均可D.任何情况均不可54.下列数据结构中,(D )不是线性结构。
A.栈B.队列C.数组D.树55.栈又称为(B )表。
A.先进先出B.后进先出D.不进不出D.以上均不对56.在以下哪种情况下,不能执行入栈操作?(A )A.栈满B.栈空C.任何情况均可D.任何情况均不可60.非空树有(B )个根结点。
A.0 B.1 C.2 D.任意多个61.串是一种特殊的线性表,其特殊性体现在( B )A.可以顺序存储B.数据元素是一个字符C.可以链接存储D.数据元素可以是多个字符63.数组中的数据元素的类型(A)。
A.必须相同B.不必相同C.一定不能相同D.以上都不对64.下列数据结构中,( D )不都是线性结构。
A.栈和队列B.队列和数组C.数组和串D.树和队列65.关于空串与空格串,下面说法正确的是( C )。
A.空串与空格串是相同的B.空串与空格串长度是相同的C.空格串中存放的都是空格D.空串中存放的都是NULL66.递归可采用下面哪种结构实现(B )A.队列B.栈C.树D.图67.栈操作的原则是( B )A.先进先出B.后进先出C.只能进行插入D.只能进行删除69.如果一个函数在其函数体中调用自己本身,则该函数叫做( B )。
A.重载函数B.递归函数C.普通函数D.成员函数70.线性表若采用链式存储结构时,要求内存中可用存储单元的地址( D ) A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续或不连续都可以71.设计一个判别表达式中左右括号是否配对的算法,采用(B)数据结构最佳。
A 顺序表B栈 C 队列 D 链表72.下面的说法中,不正确的是(D)。
A 对称矩阵只须存放包括主对角线元素在内的下(或上)三角的元素即可。
B 对角矩阵只须存放非零元素即可。
C 稀疏矩阵中值为零的元素较多,因此可以采用三元组表方法存储。
D 稀疏矩阵中大量值为零的元素分布有规律,因此可以采用三元组表方法存储。
73、请回答下列关于图的问题:(1) 一个具有n个顶点的完全图的边数为_n(n-1)/2或n(n-1)___________。
(2) 无向图中的连通分量定义为无向图的___极大连通子图______。
(3) 设无向图G的顶点数为n,则G最少有_____n_________条边。
(4) 一个具有n个顶点的有向完全图的弧数为__n(n-1)________。
(5) 有向图中的强连通分量定义为有向图的____极大强连通子图________。
74.连通分量是__A_____的极大连通子图。
A.无向图B.有向图C. 树D.图75.强连通分量是__B_____的极大连通子图。
A.无向图B.有向图C. 树D.图76.有n个顶点的无向图的邻接矩阵是用__A____数组存储。
A.n行n列B.一维C.任意行n列D.n行任意列77.下列有关图遍历的说法中不正确的是__C_____。
A.连通图深度优先搜索是个递归过程B.图的广度优先搜索中邻接点的寻找具有“先进先出”的特征C.非连通图不能用深度优先搜索法D.图的遍历要求每一顶点仅被防问一次二.计算题1.有三个元素按a、b、c的次序依次进栈,且每个元素只允许进一次栈,列出所有可能的出栈序列。
Abc cba bac acb bca2.栈S=(a,b,c),在栈中插入1个元素d,再从栈中删除一个元素,请写出S 的变化过程。
S=(a,b,c,)->S=(a,b,c,d)->S=(a,b,c)3.队列Q=(a,b,c),在队列中插入1个元素d,再从队列中删除一个元素,请写出Q的变化过程。
Q=(a,b,c)->Q=(a,b,c,d)->Q=(b,c,d)4.请根据下图回答下列问题①哪个是根结点? A②哪些是叶子结点? D E G③哪个是结点C的双亲? A④哪些是结点C的孩子? E F⑤C的兄弟是哪个结点?B⑥F的堂兄弟是哪个结点?D⑦哪些结点是C的子孙结点?E F G⑧树的深度是多少? 4⑨树的度是多少?2⑩请写出该树的先根遍历序列、中根序列、后根序列、层次遍历序列。