题数据结构复习题_chWord版
数据结构复习题及答案5篇
数据结构复习题及答案5篇第一篇:数据结构复习题及答案、数据结构复习题及答案中南大学现代远程教育课程考试(专科)复习题及参考答案数据结构一、判断题:1.数组是一种复杂的数据结构,数组元素之间的关系既不是线性的也不是树形的。
()2.链式存储在插人和删除时需要保持物理存储空间的顺序分配,不需要保持数据元素之间的逻辑顺序。
()3.在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。
()4.折半搜索只适用于有序表,包括有序的顺序表和有序的链表。
()5.如果两个串含有相同的字符,则这两个串相等。
()6.数组可以看成线性结构的一种推广,因此可以对它进行插入、删除等运算。
()7.在用循环单链表表示的链式队列中,可以不设队头指针,仅在链尾设置队尾指针。
()8.通常递归的算法简单、易懂、容易编写,而且执行的效率也高。
()9.一个广义表的表尾总是一个广义表。
()10.当从一个小根堆(最小堆)中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。
()11.对于一棵具有n个结点,其高度为h的二叉树,进行任一种次序遍历的时间复杂度为O(h)。
()12.存储图的邻接矩阵中,邻接矩阵的大小不但与图的顶点个数有关,而且与图的边数也有关。
()13.直接选择排序是一种稳定的排序方法。
()14.闭散列法通常比开散列法时间效率更高。
()15.有n个结点的不同的二叉树有n!棵。
()16.直接选择排序是一种不稳定的排序方法。
()17.在2048个互不相同的关键码中选择最小的5个关键码,用堆排序比用锦标赛排序更快。
()18.当3阶B_树中有255个关键码时,其最大高度(包括失败结点层)不超过8。
()19.一棵3阶B_树是平衡的3路搜索树,反之,一棵平衡的3路搜索树是3阶非B_树。
()20.在用散列表存储关键码集合时,可以用双散列法寻找下一个空桶。
数据结构复习题及答案
数据结构复习题及答案一、选择题1. 在数据结构中,以下哪种数据结构允许在任何位置进行插入和删除操作?A. 栈B. 队列C. 链表D. 数组答案:C2. 以下哪个选项是二叉搜索树的特性?A. 所有左子树的节点值小于根节点值B. 所有右子树的节点值大于根节点值C. 所有左子树的节点值大于根节点值D. 所有右子树的节点值小于根节点值答案:A3. 在图的遍历中,深度优先搜索(DFS)使用的是哪种数据结构?A. 栈B. 队列C. 链表D. 数组答案:A二、填空题1. 在一个有n个节点的完全二叉树中,如果节点按层次从上到下、从左到右编号为1, 2, 3, ..., n,则第i个节点的左孩子节点的编号为____。
答案:2i2. 哈希表解决冲突的一种方法是使用链地址法,其中每个哈希表项是一个____。
答案:链表3. 在图的表示方法中,邻接矩阵适合表示____图,邻接表适合表示____图。
答案:稠密;稀疏三、简答题1. 描述什么是递归,并给出一个简单的递归算法的例子。
答案:递归是一种在算法中调用自身的方法,用于解决可以分解为相似子问题的问题。
一个简单的递归算法例子是计算阶乘:n! = n * (n-1)!,其中基本情况是0! = 1。
2. 解释什么是图的广度优先搜索(BFS)算法,并说明其在哪些情况下适用。
答案:广度优先搜索(BFS)是一种遍历或搜索树或图的算法,它从根节点开始,逐层遍历节点。
BFS适用于寻找最短路径或在层次结构中按层次顺序访问节点的情况。
四、编程题1. 给定一个单链表,请编写一个函数来反转该链表。
答案:(此处省略具体代码实现,只提供解题思路)要反转一个单链表,可以创建一个新的链表头节点,然后遍历原链表,将每个节点的next指针指向前一个节点,直到链表末尾。
最后,将新链表的头节点设置为原链表的最后一个节点的前驱节点。
(完整word版)数据结构简答题打印版1
数据结构简答题1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。
解:数据是对客观事物的符号表示。
在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
数据对象是性质相同的数据元素的集合,是数据的一个子集。
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
存储结构是数据结构在计算机中的表示。
数据类型是一个值的集合和定义在这个值集上的一组操作的总称。
抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。
是对一般数据类型的扩展。
1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。
解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。
一般数据类型由具体语言系统内部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型。
抽象数据类型通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。
在定义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次更高,更能为其他用户提供良好的使用接口。
1.7 在程序设计中,可采用下列三种方法实现输出和输入:(1) 通过scanf和printf语句;(2) 通过函数的参数显式传递;(3) 通过全局变量隐式传递。
试讨论这三种方法的优缺点。
解:(1)用scanf和printf直接进行输入输出的好处是形象、直观,但缺点是需要对其进行格式控制,较为烦琐,如果出现错误,则会引起整个系统的崩溃。
(2)通过函数的参数传递进行输入输出,便于实现信息的隐蔽,减少出错的可能。
(3)通过全局变量的隐式传递进行输入输出最为方便,只需修改变量的值即可,但过多的全局变量使程序的维护较为困难。
2.1 描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。
(完整word版)数据结构考试题5
要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。
每张答题纸都要写上姓名和学号。
一、单项选择题(每小题2分,共20小题,共计40分)1.某算法的空间复杂度为0(1),则。
A.该算法执行不需要任何辅助空间B.该算法执行所需辅助空间大小与问题规模n无关C.该算法执行不需要任何空间D.该算法执行所需全部空间大小与问题规模n无关2.在长度为n的顺序表中插入一个元素,对应算法的时间复杂度为。
A.0(1)B.O(log2n)C.0(n)D.0(n2)3.设线性表中有n个元素,以下运算中,在单链表上实现要比在顺序表上实现效率更高。
A.删除指定位置元素的后一个元素B.在最后一个元素的后面插入一个新元素C.顺序输出前k个元素D.交换第i个元素和第n-i+1个元素的值(i=1, 2,…,n)4.以下数据结构中元素之间为非线性关系的是。
A.栈B.队列C.线性表D.以上都不是5.若一个栈用数组data[1..n]存储,初始栈顶指针top为n+1,则以下元素x进栈的正确操作是。
A.top++;data[top]=x;B.data[top]=x;top++;C.top-- ;data[top]=x;D.data[top]=x;top --;6.若某循环队列有队首指针front和队尾指针rear,在队不满时进队操作仅会改变。
A.frontB.rearC.front 和rearD.以上都不队7.设循环队列中数组的下标是0〜N-1,其队头、队尾指针分别为f和r(f指向队首元素的前一位置,r指向队尾元素),则其元素个数为。
A.r-fB.r-f-1C.(r-f)%N+1D.(r-f+N)%N8.设树T的度为4,其中度为1、2、3、4的结点个数分别为4、2、1、1,则T中的叶子结点个数是。
A.5B.6C.7D.89. 一棵哈夫曼树中共有199个结点,它用于多少个字符的编码。
A.99B.100C.101D.19910.设森林F中有4棵树,第1、2、3、4棵树的结点个数分别为a、b、c、d,将森林F转换为一颗二叉树B,则二叉树B根结点的左子树上的结点个数是。
(完整word版)数据结构C语言版期末考试试题(有答案)
“数据结构”期末考试试题一、单选题(每小题2分,共12分)1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一>next=HLB. p一>next=HL;HL=p3C. p一>next=Hl;p=HL;D. p一>next=HL一>next;HL一>next=p;2.n个顶点的强连通图中至少含有( )。
A.n—l条有向边B.n条有向边C.n(n—1)/2条有向边D.n(n一1)条有向边3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A.O(1)B.O(n)C.O(1Ogzn)D.O(n2)4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。
A.24 B.48C. 72 D. 535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
A.整形B.引用型C.指针型D.常值引用型·6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )。
A.O(n) B.O(1)C.O(n2) D.O(10g2n)二、填空题(每空1分,共28分)1.数据的存储结构被分为——、——、——和——四种。
2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为——域和——域。
3.——中缀表达式 3十x*(2.4/5—6)所对应的后缀表达式为————。
4.在一棵高度为h的3叉树中,最多含有——结点。
5.假定一棵二叉树的结点数为18,则它的最小深度为——,最大深度为——· 6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定——该结点的值,右子树上所有结点的值一定——该结点的值。
7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层——调整,直到被调整到——位置为止。
数据结构Word版
第一章习题判断题1.数据元素是数据的最小单位。
( )2.记录是数据处理的最小单位。
( )3.数据的逻辑结构是指数据的各数据项之间的逻辑关系。
( )4.算法的优劣与算法描述语言无关,但与所用计算机有关。
( )5.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
( )6.算法可以用不同的语言描述,如果用C语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。
( )7.程序一定是算法。
( )8.数据的物理结构是指数据在计算机内的实际存储形式。
( )9.数据结构的抽象操作的定义与具体实现有关。
( )10.在顺序存储结构中,有时也存储数据结构中元素之间的关系。
( )11.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
( )12.数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。
( )13.数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构。
( )答案1.× 2.× 3.× 4.× 5.√6.× 7.× 8.√ 9.× 10.×11.× 12.√ 13.×填空题1.数据的物理结构包括____ 的表示和____ 的表示。
2.对于给定的n个元素,可以构造出的逻辑结构有(1),(2),(3),(4)四种。
3.数据的逻辑结构是指_____。
4.一个数据结构在计算机中______称为存储结构。
5.抽象数据类型的定义仅取决于它的一组(1),而与(2)无关,即不论其内部结构如何变化,只要它的(3)不变,都不影响其外部使用。
6.数据结构中评价算法的两个重要指标是_______。
7.数据结构是研讨数据的(1)和(2),以及它们之间的相互关系,并对与这种结构定义相应的(3),设计出相应的(4)。
8.一个算法具有5个特性: (1)、(2)、(3),有零个或多个输入、有一个或多个输出。
(完整word版)数据结构期末复习题
数据结构期末复习题、选择题1. 以下说法中不正确的是(D)。
A. 数据元素是数据的基本单位B. 数据项是不可分割的最小可标识单位C. 数据可由若干个数据元素构成D. 数据项可由若干个数据元素构成2. 计算机所处理的数据一般具备某种内在联系,这是指(B)。
A. 数据和数据之间存在某种关系B. 元素和元素之间存在某种关系C. 元素内部具有某种结构D. 数据项和数据项之间存在某种关系3. 在数据结构中,与所使用的计算机无关的是数据的(A)结构。
A. 逻辑B. 存储C. 逻辑和存储D. 物理4. 数据的逻辑结构可以分为(C)两类。
A. 动态结构和静态结构B. 紧凑结构和非紧凑结构C. 线性结构和非线性结构D. 内部结构和外部结构5. 数据的逻辑结构是指(A)关系的整体。
A. 数据元素之间逻辑B. 数据项之间逻辑C. 数据类型之间D. 存储结构之间6. 以下数据结构中(D)属非线性结构。
A. 栈B. 串C. 队列D. 平衡二叉树7. 以下属于逻辑结构的是(C)。
A. 顺序表B. 哈希表C. 有序表D. 单链表8. 以下不属于存储结构的是(A)。
A. 栈B. 线索二叉树C. 哈希表D. 双链表9. 在计算机中存储数据时,通常不仅要存储个数据元素的值,而且还要存储(C)A. 数据的处理方法B. 数据元素的类型C.数据元素之间的关系D.数据的存储方法10. 数据结构在计算机内存中的表示是指(A)。
A. 数据的存储结构B. 数据结构C. 数据的逻辑结构D. 数据元素之间的关系11. 在数据的存储结构中,一个结点通常存储一个(B)A. 数据项B. 数据元素C. 数据结构D. 数据类型12. 在决定选择何种类型的存储结构时,一般不多考虑(A)A. 各结点的值如何B. 结点个数的多少C. 对数据有哪些运算D. 所用编程语言实现这种结构是否方便13. 计算机中算法指的是解决某一问题的有限运算序列,它必须具备输入、输出、(B)。
(完整word版)数据结构复习题-第7章答案2014-6-16(word文档良心出品)
第7章图一、选择题(每小题1分,共10分)1.一个n个顶点的连通无向图,其边的个数至少为( C )。
A.n+lB.nC.n-lD.2n2.下列哪一种图的邻接矩阵是对称矩阵( B )。
A.有向图B.无向图C.AOV网D.AOE网3.为解决计算机和打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区,而打印机则依次从该缓冲区中取出数据。
该缓冲区的逻辑结构应该是( B )。
A.栈B.队列C.树D.图4.设无向图的顶点个数为n,则该图最多有( C )条边。
A. n-1B. n(n-1)/2C. n(n+1)/2D. 2n5.无向图G=(V,E),其中:V={a,b,c,d,e,f}, E={(a,b),(a,e),(a,c),(b,e),(c,f), (f,d),(e,d)},由顶点a开始对该图进行深度优先遍历,得到的顶点序列正确的是( D )。
A. a,b,e,c,d,fB. a,c,f,e,b,dC. a,e,b,c,f,dD. a,e,d,f,c,b6.用邻接表表示图进行广度优先遍历时,通常是采用( B )来实现算法的。
A.栈B.队列C.树D.图7.以下数据结构中,哪一个是线性结构( D )。
A.广义表B.二叉树C.图D.栈8.下面哪一方法可以判断出一个有向图是否有环(回路)( B )。
A.最小生成树B.拓扑排序C.求最短路径D.求关键路径9.在一个图中,所有顶点的度数之和等于图的边数的( C )倍。
A. 1/2B. 1C. 2D. 410.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( B )倍。
A. 1/2B. 1C. 2D. 411.有8个顶点无向图最多有( B )条边。
A. 14B. 28C. 56D. 11212.有8个顶点无向连通图最少有( C )条边。
A. 5B. 6C. 7D. 813.有8个顶点有向完全图有( C )条边。
A. 14B. 28C. 56D. 11214.下列说法不正确的是( A )。
数据结构复习题 有答案的打印版
一、选择题1.下面关于线性表的叙述中,错误的是哪一个?( B )A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
3.线性表是具有n个( C )的有限序列(n>0)。
A.表元素B.字符C.数据元素D.数据项E.信息项2.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( A )存储方式最节省时间。
A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表3.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。
A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表4. 静态链表中指针表示的是( C ).A.内存地址B.数组下标C.下一元素地址D.左、右孩子地址5. 链表不具有的特点是( B )A.插入、删除不需要移动元素B.可随机访问任一元素C.不必事先估计存储空间D.所需空间与线性长度成正比1. 对于栈操作数据的原则是(B )。
A. 先进先出B. 后进先出C. 后进后出D. 不分顺序2. 有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?( A )A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 41 5 63. 设栈的输入序列是1,2,3,4,则(D )不可能是其出栈序列。
A. 1,2,4,3,B. 2,1,3,4,C. 1,4,3,2,D. 4,3,1,2,E. 3,2,1,4,1. 已知数组A[0..9,0..9]的每个元素占5个存储单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,求A[6,8]的地址。
13402. 已知二维数组A[1..10,0..9]中每个元素占4个单元,在按行优先方式将其存储到起始地址为1000的连续存储区域时,求A[5,9]的地址。
(完整版)数据结构复习题目及答案
(完整版)数据结构复习题目及答案数据结构 -C 语言版》第一章绪论单项选择题1.在数据结构中,数据的基本单位是 ________2.数据结构中数据元素之间的逻辑关系被称为__ ___ 。
A. 数据的存储结构B. 数据的基本操作C. 程序的算法3.在数据结构中,与所使用计算机无关的是数据的________ ___。
A. 存储结构B. 逻辑和物理结构C. 逻辑结构4.在链式存储结构中,数据之间的关系是通过 _______ ___ 体现的。
A. 数据在内存的相对位置B. 指示数据元素的指针C. 数据的存储地址D. 指针5.计算算法的时间复杂度是属于一种 ______ ___。
A. 事前统计的方法B. 事前分析估算的方法C. 事后统计的方法D. 事后分析估算的方法6.在对算法的时间复杂度进行估计的时候,下列最佳的时间复杂度是A. n 2B. nlognC. nD. logn 7.设使用某算法对 n 个元素进行处理,所需的时间是T(n)=100nlog 2n+200n+2000,则该算法的渐近时间复杂度为 _____ ___。
A. 数据项B. 数据类型C. 数据元素D. 数据变量D. 数据的逻辑结构D. 物理结构A. O(1)B. O(n)C. O(200n)D. O(nlog2n)CDCBBDD第二章线性表单项选择题1 ?链表不具有的特点是 __________ 。
A.可随机访问任一元素B.插入和删除时不需要移动元素C.不必事先估计存储空间D.所需空间与线性表的长度正比2.设顺序表的每个元素占 8个存储单元。
第1个单元的存储地址是100,则第6个元素占用的最后一个存储单元的地址为 ______________ 。
3 ?在线性链表存储结构下,插入操作算法_______________ B. p_>next = p_>n ext;D. p = p->n ext; p->n ext = p->n ext- >n ext;5 .将长度为n 的单链表接在长度为 m 的单链表之后的算法时间复杂度为 __________________ A. 0( n)B. 0(1)C. 0(m)D. 0(m+n)6 ?需要预分较大空间,插入和删除不需要移动元素的线性表,其存储结构是 ________A.单链表B.静态链表C.线性链表D.顺序存储方式ACCABB 填空题1 ?在带表头结点的单链表中,当删除某一指定结点时,必须找到该结点的 ____ 结点。
数据结构复习题.docx
2017〜2018学年度第2学期 《数据结构》 复习提纲、单项选择题1. __________________________________________ 在数据结构中,从逻辑上可以把数据结构分为 两类。
A •动态结构和静态结构B •紧凑结构和非紧凑结构C .线性结构和非线性结构D .内部结构和外部结构2 •链表不具有的特点是 _________ 。
A .可随机访问任一元素B .插入、删除不需要移动的元素C .不必事先估计存储空间D .所需空间与线性表长度成正比3. 若线性表最常用的运算是存取第 ___________ i 个元素及其前驱元素,则采用存储方式节省时间。
A .单链表B .双链表C .循环单链表D .顺序表4. __________________________ 算法分析的目的是 。
A .找出数据结构的合理性B .研究算法中的输入和输出关系C .分析算法的效率以求改进D .分析算法的易读性和文档性5. ________________________________________________________________________________________ 若一个栈用数组data[1..n]存储,初始栈顶指针top 为0,则以下元素X 进栈的操作正确的是 ____________________A . top++; data[top]=x;B . data[top]=x; top++;C . top--; data[top]=x;D . data[top]=x; top--; 6 .表达式a*(b+c)-d 的后缀表达式是 ______________ 。
A . abed*+-B . abc+*d-C . abc*+d-7.递归函数 f(1)=1 , f(n)=f(n-1)+n(n > 1)的递归出口是 _____________A . f(1)=1B . f(1)=0C . f(0)=0 &将递归算法转换成对应的非递归算法时,通常需要使用 A .队列B .栈C .链表9.对稀疏矩阵采用压缩存储,其缺点之一是A .无法判断矩阵有多少行、多少列B .无法根据行、列号查找某个矩阵元素C .无法根据行、列号直接计算矩阵元素的存储地址D .使矩阵元素之间的逻辑关系更加复杂10 . 一个n 阶上三角矩阵a 按行优先顺序压缩存放在一维数组b 中,则b 中的元素个数是 ___________2A . nB . nC . n(n+1)/2D . n(n +1)/2+111 .度为4 ,高度为h 的树 ____________ 。
数据结构经典复习题(仅供参考)
一、选择题(20分)1.下面关于线性表的叙述错误的是(D )。
(A) 线性表采用顺序存储必须占用一片连续的存储空间(B) 线性表采用链式存储不必占用一片连续的存储空间(C) 线性表采用链式存储便于插入和删除操作的实现(D) 线性表采用顺序存储便于插入和删除操作的实现2.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为(A )。
(A) BADC (B) BCDA (C) CDAB (D) CBDA3.设某棵二叉树中有2000个结点,则该二叉树的最小高度为( C )。
(A) 9 (B) 10 (C) 11 (D) 124.设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为( B )。
(A) O(1) (B) O(log2n) (C) (D) O(n2)5.设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列( B )方法可以达到此目的。
(A) 快速排序(B) 堆排序(C) 归并排序(D) 插入排序第9小题分析:9快速排序、归并排序和插入排序必须等到整个排序结束后才能够求出最小的10个数,而堆排序只需要在初始堆的基础上再进行10次筛选即可,每次筛选的时间复杂度为O(log2n)。
6.下列四种排序中( D )的空间复杂度最大。
(A) 插入排序(B) 冒泡排序(C) 堆排序(D) 归并排序7.设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为(C )。
(A) O(n) (B) O(nlog2n) (C) O(1) (D) O(n2)8.设一棵二叉树的深度为k,则该二叉树中最多有(D )个结点。
(A) 2k-1 (B) 2k(C) 2k-1(D) 2k-19.在二叉排序树中插入一个结点的时间复杂度为(B )。
(A) O(1) (B) O(n) (C) O(log2n) (D) O(n2)10.设用链表作为栈的存储结构则退栈操作( B )。
(完整word版)数据结构(C语言)
《数据结构与算法》复习题应用简答题.1.有下列几种用二元组表示的数据结构,画出它们分别对应的逻辑图形表示,并指出它们分别属于何种结构。
(1)A ={D,R},其中:D={a,b,c,d,e,f,g,h},R ={r},r ={<a,b>,<b,c>,〈c,d〉,〈d,e>,〈e,f〉,<f,g>,<g,h〉}(2)B ={D,R},其中:D={a,b,c,d,e,f,g,h},R ={r},r ={<d,b>,〈d,g〉,<d,a〉,<b,c>,<g,e>,<g,h〉,〈e,f〉}(3)C ={D,R},其中:D={1,2,3,4,5,6},R ={r},r ={(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6)}2.简述顺序表和链表存储方式的特点。
答:顺序表的优点是可以随机访问数据元素,缺点是大小固定,不利于增减结点(增减结点操作需要移动元素)。
链表的优点是采用指针方式增减结点,非常方便(只需改变指针指向,不移动结点)。
其缺点是不能进行随机访问,只能顺序访问。
另外,每个结点上增加指针域,造出额外存储空间增大.3.对链表设置头结点的作用是什么?(至少说出两条好处)答:其好处有:(1)对带头结点的链表,在表的任何结点之前插入结点或删除表中任何结点,所要做的都是修改前一个结点的指针域,因为任何元素结点都有前驱结点(若链表没有头结点,则首元素结点没有前驱结点,在其前插入结点和删除该结点时操作复杂些)。
(2)对带头结点的链表,表头指针是指向头结点的非空指针,因此空表与非空表的处理是一样的。
4.对于一个栈,给出输入项A ,B,C 。
如果输入项序列由A ,B,C 组成,试给出全部可能的输出序列。
5.设有4个元素1、2、3、4依次进栈,而栈的操作可随时进行(进出栈可任意交错进行,但要保证进栈次序不破坏1、2、3、4的相对次序),请写出所有不可能的出栈次序和所有可能的出栈次序.6.现有稀疏矩阵A 如图所示,要求画出三元组表示法和十字链表表示法:⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡--000280000000910000000060000003130150220157.设4维数组的4个下标的范围分别为[-1,0],[1,2],[1,3],[-2,-1],请分别按行序和列序列出各元素。
数据结构复习题(精心整理).docx
数据结构复习题(打星号内容可以不考虑)习题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. 算法分析的目的是①,算法分析的两个主要方而是②。
5. 计算机算法指的是①,它必具备输入、输出和②等五个特性。
①A.计算方法C. 解决问题的有限运算序列②A.可行性、可移植性和可扩充性C. 确定性、有穷性和稳定性 1.2填空题(将正确的答案填在相应的空中)1. 数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。
2. 在线性结构屮,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一 个结点后续结点,其余每个结点有且只有个后续结点。
3. 在树形结构中,树根结点没冇结点,其余每个结点冇仇只冇个直接前驱结点,叶子 结点没有结点,其余每个结点的直接后续结点可以。
4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。
5. 线性结构中元素Z 间存在关系,树形结构中元素之间存在关系,图形结构中元素Z ① A.找出数据结构的合理性C.分析算法的效率以求改进 ② A.空间复杂性和时间复杂性 C.可读性和文档性B. 研究算法屮的输入和输出的关系D.分析算法的易懂性和文档性B. 」E 确性和简明性 B.排序方法 D.调度方法 B.可行性、确定性和有穷性 D.易读性、稳定性和安全性间存在关系。
(完整)数据结构(C语言)【经典题库】含答案,推荐文档
《数据结构与算法》复习题选择题1.在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。
A.逻辑 B.存储 C.逻辑和存储 D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。
A.数据的处理方法 B.数据元素的类型C.数据元素之间的关系 D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何 B.结点个数的多少C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
6.以下说法正确的是 D 。
A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是 O(n2) 。
s =0;for( I =0; i<n; i++)for(j=0;j<n;j++)s +=B[i][j];sum = s ;9.下面程序段的时间复杂度是 O(n*m) 。
for( i =0; i<n; i++)for(j=0;j<m;j++)A[i][j] = 0;10.下面程序段的时间复杂度是 O(logn) 。
3i = 0;while(i<=n)i = i * 3;11.在以下的叙述中,正确的是 B 。
《数据结构》复习题
《数据结构》复习题一、填空题1.数据结构中评价算法的两个重要指标是和。
2.数据元素之间有多种关系,其中常见的关系有、、、。
3.线性表的顺序存储是用实现的。
4.在长度为n的顺序表中插入一个元素,等概率的情况下的平均移动元素的次数是。
5.三个结点可构成种不同形态的二叉树。
6.对于栈只能在 (位置)插入和删除元素。
7.对矩阵压缩是为了。
8.深度为k的完全二叉树至少有个结点,至多有个结点。
9.对于一棵具有n个结点的二叉树,当进行链接存储时,其二叉链表中的指针域的总数为个,其中个用于链接孩子结点。
10.对二叉排序树进行遍历,可得到排好序的递增结点序列。
11.N个顶点的连通图的生成树含有条边。
12.己知有序表为(12,18,24,35,47,50,62,83,90,115,134)当用二分法查找90时,需次查找成功,47时成功,查100时,需次才能确定不成功。
13.算法的计算量的大小称为计算的____14.在线性表的顺序存储中,元素之间的逻辑关系是通过__ __决定的;在线性表的链接存储中,元素之间的逻辑关系是通过____决定的。
15.对于一个具有N个结点的单链表,在已知的结点*P后插入一个新结点的时间复杂度为____,在给定值为X的结点后插入一个新结点的时间复杂度为____.16.无论对于顺序存储还是链接存储的队列来说,进行插入或删除运算的时间复杂度均相同为____.17.对于一棵具有n个结点的树,该树中所有结点的度数之和为____18.在一个完全二叉树的顺序存储中,若一个结点的下标为i,则它的左子女结点的下标为____,右子女结点的下标为____.19.对于一棵具有n个结点的二叉树,对应二叉链表中指针总数为____个,其中____个用于指向子女结点,____个指针空闲着20.以折半搜索方法搜索一个线性表时,此线性表必须是____存储的____表21.在一个无向图中,所有顶点的度数之和等于所有边数的____倍。
数据结构-复习题-答案
数据结构-复习题-答案一、选择题1. 数据结构是指()。
A. 一组数据的存储结构B. 一组数据的算法C. 一组数据的完整性D. 一组数据的遍历方式答案:A2. 数组是一种()数据结构。
A. 线性B. 非线性C. 树形D. 图形答案:A3. 链表是一种()数据结构。
A. 线性B. 非线性D. 图形答案:A4. 栈是一种()数据结构。
A. 线性B. 非线性C. 树形D. 图形答案:A5. 队列是一种()数据结构。
A. 线性B. 非线性C. 树形D. 图形答案:A6. 树是一种()数据结构。
A. 线性C. 树形D. 图形答案:B7. 图是一种()数据结构。
A. 线性B. 非线性C. 树形D. 图形答案:D8. 哈希表是一种()数据结构。
A. 线性B. 非线性C. 树形D. 图形答案:A9. 排序算法中,选择排序的时间复杂度是()。
B. O(logn)C. O(n)D. O(n^2)答案:D10. 排序算法中,快速排序的时间复杂度是()。
A. O(1)B. O(logn)C. O(n)D. O(n^2)答案:D二、填空题1. 在数组中,下标表示()。
答案:元素在数组中的位置2. 链表的结构中,节点包含()。
答案:数据元素和指向下一个节点的指针3. 树的根节点位于()。
答案:最顶层4. 图的节点间的关系可以用()表示。
答案:边5. 哈希表通过()进行快速的数据查找。
答案:哈希函数三、简答题1. 数据结构是什么,它的作用是什么?答:数据结构是一种组织和存储数据的方式,它的作用是使数据能够高效地进行操作和处理。
通过选择合适的数据结构,我们可以提高算法的效率,减少资源的浪费。
2. 数组和链表的区别是什么?答:数组是一种连续存储的数据结构,它的元素在内存中占用连续的空间。
链表则是一种离散存储的数据结构,它的元素在内存中可以分布在任意的位置。
数组的插入和删除操作比较耗时,而链表则可以快速进行插入和删除操作。
3. 栈和队列的特点及各自的应用场景是什么?答:栈是一种后进先出(LIFO)的数据结构,常用于实现递归调用、表达式求值等场景。
(完整word版)数据结构考试题4
要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。
每张答题纸都要写上姓名和学号。
一、单项选择题(每小题2分,共15小题,共计30分)1. 以下不属于存储结构是 。
A.栈 B.线索树 C.哈希表 D.双链表2. 以下算法的时间复杂度为 。
void fun(int n) { int i=1; while (i<=n) i=i*3; }A. O(n )B. O(n 2)C. O(log 2n )D. O(log 3n )3. 在含有n 个节点的单链表中查找第i 个节点的平均时间复杂度是 。
A.O(log 2n ) B.O(1) C.O(n 2) D.O(n )4. 设栈S 和队列Q 的初始状态均为空,元素a ,b ,c ,d ,e ,f ,g 依次进入栈S 。
若每个元素出栈后立即进入队列Q ,且7个元素出列的顺序是b ,d ,c ,f ,e ,a ,g ,则栈S 的容量至少是 。
A. 1B. 2C. 3D. 45. 已知循环队列存储在一维数组A [0..n -1]中,且队列非空时front 和rear 分别指向队头元素和队尾元素。
若初始时队列空,且要求第一个进入队列的元素存储在A [0]处,则初始时front 和rear 的值分别是 。
A. 0,0B. 0,n -1C. n -1,0D. n -1,n -1 6. 一个n ×n 的对称矩阵A ,如果采用以列优先(即以列序为主序)的压缩方式存放到一个一维数组B 中,则B 的容量为 。
A. n 2B.22n C.2)1(+n n D.2)1(2+n 7. 若一棵3次树中有a 个度为1的节点,b 个度为2的节点,c 个度为3的节点,则该树中有 个叶子节点。
A.1+2b +3cB.a +2b +3cC.2b +3cD.1+b +2c8. 一个无向连通图中有16条边,所有顶点的度均小于5,度为4的顶点有3个,度为3的顶点有4个,度为2的顶点有2个,则该图有 个顶点。
数据结构题库多选题(可编辑修改word版)
mulchoose0@*@3mulchoose0@*@1@*@2 1 . 以下说法正确的是()A . 二叉树的特点是每个结点至多只有两棵子树。
B . 二叉树的子树无左右之分。
C . 二叉树只能进行链式存储。
D . 树的结点包含一个数据元素及若干指向其子树的分支。
答案:A ,D解析:2 . 算法设计的要求包括 。
A . 正确性B . 可读性C . 健壮性D . 确定性答案:A ,B ,C解析: “确定性”属于算法特性而非要求。
3 . 下列属于算法的重要特征的是:A . 有穷性B . 确定性C . 可行性D . 输入和输出答案:A ,B ,C ,Dmulchoose0@*@1@*@2@*@3 mulchoose0@*@1@*@2@*@3mulchoose0@*@3解析: ABCD4 . 图的四中存储结构A . 邻接矩阵B . 邻接表C . 邻接多重表D . 十字链表答案:A ,B ,C ,D解析:5 . 依据所有数据成员之间的逻辑关系的不同,数据结构分为()A . 非线性结构B . 逻辑结构C . 物理结构D . 线性结构答案:A ,D解析:6 . 图的应用算法有()A . 克鲁斯卡尔算法B . 哈弗曼算法mulchoose0@*@2@*@3C . 迪杰斯特拉算法D . 拓扑排序算法答案:A ,C ,D解析:7 . 计算机算法必须具备等特性。
A . 可行性、确定性B . 可行性、可移植性C . 输入、输出D . 有穷性E . 易读性F . 稳定性答案:A ,C ,D解析:0@*@2@*@3mulchoose8 . 下列数据结构中,属于线性数据结构的是A . 栈B . 队列C . 树D . 图答案:A ,Bmulchoose0@*@1mulchoose1@*@2@*@4mulchoose0@*@2解析:9 . 下列说法正确的有:A . 算法和程序原则上没有区别,在讨论数据结构时二者通用B . 从逻辑关系上讲,数据结构分为两大类:线性结构和非线性结构C . 所谓数据的逻辑结构是指数据元素之间的逻辑关系D . 同一数据逻辑结构中的所有数据元素都具有相同的特性是指数据元素所包含的数据项的个数相等E . 数据的逻辑结构与数据元素本身的内容和形式无关F . 数据结构是指相互之间存在一种或多种关系的数据元素的全体答案:B ,C ,E解析:10 . 线性表的特点正确的()A . 存在唯一的一个被称作”第一个“的数据元素。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Ch4栈和队列(共12题,其中5道算法设计题)
一、选择题
1、设链式栈中结点的结构为(data, link),且top是指向栈顶的指针。
若想在链式栈的栈顶插入一个由指针s所指的结点,则应执行下列哪一个操作?
(1) top->link = s;(2) s->link = top->link; top->link = s;(3) s->link = top; top = s;(4) s->link = top; top = top->link;
Key:(3)
2、设链式栈中结点的结构为(data, link),且top是指向栈顶的指针。
若想摘除链式栈的栈顶结点,并将被摘除结点的值保存到x中,则应执行下列哪一个操作?
(1)x= top->data; top = top->link;(2) top = top->link; x = top->data;(3) x = top; top = top->link;(4) x = top->data;
Key:(1)
3、设循环队列的结构是
const int MaxSize = 100;
typedef int DataType;
typedef struct {
DataType data[MaxSize];
int front, rear;
} Queue;
若有一个Queue类型的队列Q,试问判断队列满的条件应是下列哪一个语句?
(1) Q.front == Q.rear;(2)Q.front - Q.rear == MaxSize;
(3) Q.front + Q.rear == MaxSize;(4) Q.front == (Q.rear+1) % MaxSize;
Key : (4)
4、设循环队列的结构是 const int MaxSize = 100;
typedef int DataType ; typedef struct { DataType data[MaxSize]; int front ,rear ; } Queue ;
若有一个Queue 类型的队列Q ,试问应用下列哪一个语句计算队列元素个数? (1)(Q.rear - Q.front + MaxSize ) % MaxSize ;(2) Q.rear - Q.front +1; (3)Q.rear - Q.front -1;
(4) Q.rear - Qfront ;
Key : (1)
二、简答题
5、试回答下列问题:
(1) 设整数1, 2, 3, 4, 5, 6依次进栈,则可能的出栈序列有多少种?
(2) 若整数1, 2, 3, 4, 5, 6依次进栈,那么是否能够得到435612, 325641, 154623
和135426的出栈序列。
Key : 1)可能的不同的出栈序列有 6
12*))16/(1(C =132种?
2)不能得到435612,154623这样的出栈序列。
因为若在4,3,5,6之后再将1,2出栈,则1,2必须一直在栈中,此时1先进栈,2后进栈,2应压在1上面,不能1先于2出栈。
154623同理。
出栈序列325641,135426可以得到。
6、设有一个顺序栈S ,元素s 1, s 2, s 3, s 4, s 5, s 6依次进栈,如果6个元素的出栈顺序为s 2, s 3, s 4, s 6, s 5, s 1,则顺序栈的容量至少应为多少?
Key:3
7、假设以数组Q[m]存放循环队列中的元素, 同时以rear和length分别指示循环队列中的队尾位置和队列中所含元素的个数。
试给出该循环队列的队空条件和队满条件, 并写出相应的插入(EnQueue)和删除(DlQueue)元素的操作。
三、算法设计题
8、设顺序栈S的元素个数最大为MaxSize。
试改写顺序栈的进栈函数Push (S, x),要求当栈满时执行一个stackFull(S)操作进行栈满处理。
其功能是:动态创建一个比原来的栈元素存放数组大二倍的新数组,代替原来的栈元素存放数组,原来栈元素存放数组中的元素占据新数组的前MaxSize位置。
Key:typedef struct{
elemtype *elements;
int top;
int maxsize;
} stack;
void Push(stack *s,elemtype x)
{
if(s->top == s->maxsize -1)
{
stackFull(s);
}
s->top =s->top+1;
*(s->elements+s->top) =x;
}
void stackFull(stack *s)
{
int i;
elemtype *temp;
temp =(elemtype *)malloc(sizeof(elemtype) * (s->maxsize) *3);
for(i=0;i<= s->top;i++)
{
*(temp+i)= *(s->elements+i);
s->maxsize *= 3;
s->elements = temp;
}
}
9、假设以数组Q[m]存放循环队列中的元素, 同时设置一个标志tag,以tag = 0和tag = 1来区别在队头指针(front)和队尾指针(rear)相等时,队列状态为“空”还是“满”。
试编写与此结构相应的插入(EnQueue)和删除(DeQueue)的函数。
Key:typedef struct{
int front,rear,tag;//队头指针,队尾指针,队满标志
elemtype *Q;
int maxsize;
}queue;
void EnQueue(queue *q,elemtype x)
{
if(q->front == q->rear && q->tag ==1)
{
printf("error,the queue is full!\n");
exit(0);
}
else
{
rear = (rear+1) % (q->maxsize); //队尾进1,队尾指针表示
实际队尾位置
*(q->Q+rear) =x;//元素进队列
q->tag =1;//标志改1,表示队列不空
}
}
elemtype DeQueue(queue *q)
{
if(q->front == q->rear && q->tag ==0)
{
printf("error,the queue is empty!\n");
exit(0);
}
else
{
front = (front+1) % (q->maxsize);//队头进1,队头指针
表示实际队头的前一位置
q->tag =0;//标志改0,表示队列不满
return *(q->Q+front);//返回队头元素的值
}
}
10、若使用循环链表来表示队列,p是链表中的一个指针(视为队尾指针)。
试基于此结构给出队列的插入(EnQueue)和删除(DeQueue)的函数,并给出p为何值时队列空。
Key:
12、若将一个双端队列顺序表示在一维数组V[m]中,两个端点设为end1和end2,并组织成一个循环队列。
试写出双端队列所用指针end1和end2的初始化条件及队空与队满条件,并编写基于此结构的相应的插入(EnQueue )新元素和删除(DlQueue )算法。
(注:可编辑下载,若有不当之处,请指正,谢谢!)
end1
end2
m -
1。