数据结构复习题三
- 格式:doc
- 大小:72.50 KB
- 文档页数:12
一、单项选择题(本大题共71小题,每小题2分,共142分)1、一个对象序列的排序码为{46,79,56,38,40,84},采用快速排序以位于最左位置的对象为基准而得到的第一次划分结果为()。
()A.{38,46,79,56,40,84}B.{38,79,56,46,40,84}C.{40,38,46,56,79,84}D.{38,46,56,79,40,84}标准答案:C2、广义表((a),a)的表头是()。
()A.aB.bC.(a)D.((a))标准答案:C3、数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,存放该数组至少需要的单元数是()。
()A.80B.100C.240D.270标准答案:C4、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行()。
()A.HL=p;p->next=HL;B.p->next=HL;HL=p;C.p->next=HL;p=HL;D.p->next=HL->next;HL->next=p;标准答案:B5、一个具有n个顶点的无向完全图的边数为()。
()A.(n+1)/2B.n(n-1)/2C.n(n-1)D.n(n+1)标准答案:B6、如果待排序序列中两个数据元素具有相同的值,在排序后它们的位置发生颠倒,则称该排序是不稳定的。
下列选项中,()就是不稳定的排序方法。
()A.起泡排序B.归并排序C.直接插入法排序D.简单选择排序标准答案:D7、按照二叉树的定义,具有3个结点的二叉树有()种。
()A.3B.4C.5D.6标准答案:C8、设有1000个元素,用二分法查找时,最大比较次数是()。
()A.1B.7C.10D.25标准答案:C9、树适合用来表示()。
()A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据标准答案:C10、设有两个串p和q,求p在q中首次出现的位置的运算称作()。
数据结构复习题及答案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.调度方法2.下列数据结构中,()是非线性结构。
A.栈B.队列C.完全二叉树D.堆3.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A.顺序表B.双向链表C.单循环链表D.带头结点的双循环链表4.队列的操作原则是()A.先进先出B.后进先出C.先进后出D.不分顺序5.栈和队列的共同特点是()。
A.都是先进先出B.都是先进后出C.都是只允许在端点处插入和删除D.没有共同点6.在一棵高度为k 的满二叉树中,结点总数为()。
A.2k-1 B.2k C.2k-1 D.⎣log 2 k ⎦+ 17.在下列存储形式中,哪一个不是树的存储形式?()A.双亲链表表示法B.孩子链表表示法C.孩子兄弟链表表示法D.顺序存储表示法8.n 个结点的完全有向图含有边的数目为()。
A.n*n B.n*(n+1) C.n/2 D.n*(n-1)9.n 个顶点的强连通图至少有()条边。
A.n B.n-1 C.n+1 D.n(n-1)10、高度为k 的二叉树的最大结点数为()。
A、2kB、2k-1C、2k–1D、2k-1–111、下列哪一种图的邻接矩阵是对称矩阵?()A、有向图B、无向图C、AOV 网D、AOE 网12、在下列存储形式中,哪一个不是树的存储形式?()A、双亲表示法B、孩子表示法C、孩子兄弟表示法D、顺序存储表示法13、下面哪一方法可以判断出一个有向图是否有环。
()A、深度优先遍历B、拓扑排序C、求最短路径D、广度优先遍历14.适用于折半查找的表的存储方式及元素排列要求为()。
A.链接方式存储,元素无序B.链接方式存储,元素有序C.顺序方式存储,元素无序D.顺序方式存储,元素有序15、一个算法应该是()。
A、程序B、特定问题求解步骤的描述C、要满足五个基本特性D、A 和C16、算法分析的两个主要方面是()。
《数据结构》复习题一.选择题:1.数据结构是研究数据的( ) 以及它们之间的相互关系A.理想结构,物理结构B.理想结构,抽象结构C.物理结构,逻辑结构D.抽象结构,逻辑结构2. 组成数据的基本单位是()A.数据项B.数据类型C. 数据元素D. 数据变量3. 如果某数据结构的数据元素的集合为S={A,B,C,D,E,F,G},元素之间的关系为R={<A,D>,<A,G>,<D,B>,<D,C>,<G,E>,<G,F>},则该数据结构是一种()A.线性结构B. 树结构C. 图结构D. 链表结构4. 线性表的链接实现有利于( ) 运算A.插入B.读表元C.查找D.定位5. 设一数列的输入顺序为1,2,3,4,5,6通过栈操作不可能排成的输出序列为()A. 3,2,5,6,4,1B. 1,5,4,6,2,3C. 2,4,3,5,1,6D. 4,5,3,6,2,16. 设字符串S1=‘ABCDEFG’,S2=‘PQRST’则运算S=Concat(Sub(S1,2,Length(S2)),Sub(S1,Length(S2),2))后结果为()A.‘BCQR’B.‘BCDEF’C.‘BCDEFG’D.‘BCDEFEF’7. 设单链表中指针P指向结点A,若要删除A之后的结点(若存在),则修改指针的操作为()A. p→next= p→next→nextB. p= p→nextC. p= p→next→nextD. p→next = p8. 线性表采用链式存储时,其地址()A. 必须是连续的B.部分地址必须是连续的C. 一定是不连续的D.连续与否均可以9. 在内部排序时,排序不稳定的有()A.插入排序B. 冒泡排序C. 快速排序D.归并排序10. 设有1000个元素,用折半法查找时,最小比较次数为()A.0B. 1C.10D. 50011. 将一个元素进入队列的时间复杂度是()n)A. O (1)B. O (n)C. O (n2)D. O (log212. 在一个具有n个结点的单链表中查找其值等x的结点,在查找成功的情况下,需要比较()个元素结点A. n/2B. nC. (n+1)/2D. (n-1)/213. 从一个长度为n的顺序表中删除第i个元素(1≤i≤n),需向前移动()个元素A. n-iB. n-i+1C. n-i-1D. i14. 总共3层的完全二叉树,其结点数至少有()A.3B. 4C.7D.815. 队列操作的原则是()A. 先进先出B.后进先出C. 只能进行插入D. 只能进行删除16. 若线性表最常用的操作是存取第i个元素及其前驱元素的值,则采用()存储方式最节省时间A.单链表B. 双向链表C. 音循环链表D. 顺序表17. 栈和队列都是()A. 顺序存储的线性结构B. 限制存取点的线性结构C. 链接存储的线性结构D. 限制存取点的非线性结构18. 与线性表的链接存储相符的特性是()A.插入和删除操作灵活B. 需要连续存储空间C. 便于随机访问D. 存储密度大19.若进队序列为1,2,3,则出队序列是()A.3,2,1B. 1,3,2C. 1,2,3D. 3,2,120. 在单向循环链表中,若头指针为h,那么p所指结点为尾结点的条件是()A. p= NULLB. p→next= NULLC. p=hD. p→next= h3. 在双向循环链表中,在指针P所指的结点之后插入指针f所指的结点,其操作为。
数据结构复习题1一、选择题1. 以下四类基本的逻辑结构反映了四类基本的数据组织形式,解释错误的是 ( ) A 、集合中任何两个结点之间都有逻辑关系但组织形式松散 B 、线性结构中结点按逻辑关系依次排列形成一条"锁链"C 、树形结构具有分支、层次特性,其形态有点像自然界中的树D 、图状结构中的各个结点按逻辑关系互相缠绕,任何两个结点都可以邻接2. 若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为( ) A 、顺序存储结构 B 、链式存储结构 C 、索引存储结构 D 、散列存储结构3. 在长度为n 的顺序表的第i (1≤i ≤n+1)个位置上插入一个元素,元素的移动次数为( ) A 、n-i+1 B 、n-i C 、i D 、i-14. 对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )A 、顺序表B 、用头指针表示的单循环链表C 、用尾指针表示的单循环链表D 、单链表5. 一个栈的入栈序列是a,b,c,d,e ,则栈的不可能的输出序列是( )A 、e d c b aB 、d e c b aC 、d c e a bD 、a b c d e6. 已知图1如右所示,若从顶点A 出发按深度优先搜索进行遍历,则可能得到的顶点序列为( ) A 、 A ,B ,E ,C ,D ,F B 、 A ,C ,F ,E ,B ,DC 、 A ,E ,B ,C ,F ,DD 、 A ,E ,D ,F ,C ,B7. n 个顶点的有向图中含有向边的数目最多为 ( )A 、n-1B 、nC 、n(n-1)/2D 、n(n-1) 8. 若一个栈的输入顺序是1,2,…,n ,输出序列的第一个元素是n ,则第i (1≤i ≤n )个输出元素是( )A 、n-iB 、n-i-1C 、i+1D 、n -i+1 9. 已给图2,( )是该图的正确的拓扑排序序列A 、1,2,3,4,5B 、1,3,2,4,5C 、1,2,4,3,5D 、1,2,3,5,4 10. 为查找某一特定单词在文本中出现的位置,可应用的串运算是( )A 、插入B 、删除C 、串联接D 、子串定位二、填空题A BC D E F 图1 1 2 34 5 图21.存储结构是逻辑结构的__________实现。
第四章串一、选择题1.下面关于串的的叙述中,哪一个是不正确的?( B )A.串是字符的有限序列 B.空串是由空格构成的串C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储3.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为( C )A.求子串 B.联接 C.匹配 D.求串长10.串的长度是指( B )A.串中所含不同字母的个数 B.串中所含字符的个数C.串中所含不同字符的个数 D.串中所含非空格字符的个数二、填空题1.空格串是指由空格字符(ASCII值32)所组成的字符串,其长度等于空格个数__。
2.组成串的数据元素只能是__字符______。
3.一个字符串中任意个连续的字符组成的子序列称为该串的子串。
四、应用题1.名词解释:串串是零个至多个字符组成的有限序列。
从数据结构角度讲,串属于线性结构。
与线性表的特殊性在于串的元素是字符。
2.描述以下概念的区别:空格串与空串。
空格是一个字符,其ASCII码值是32。
空格串是由空格组成的串,其长度等于空格的个数。
空串是不含任何字符的串,即空串的长度是零。
第六章树和二叉树一、选择题1.已知一算术表达式的中缀形式为 A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为( D )A.-A+B*C/DE B. -A+B*CD/E C.-+*ABC/DE D. -+A*BC/DE 4. 设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶子数为( D )A.5 B.6 C.7 D.85. 在下述结论中,正确的是( D )①只有一个结点的二叉树的度为0; ②二叉树的度为2;③二叉树的左右子树可任意交换;④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。
A.①②③ B.②③④ C.②④ D.①④结点的度:一个结点的子数个数称为此结点的度数的度;树中所有结点的读的最大值6. 设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是( A )A.m-n B.m-n-1 C.n+1 D.条件不足,无法确定8.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( B )A.9 B.11 C.15 D.不确定10.设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。
第三章栈和队列试题一、单项选择题1.栈的插入和删除操作在()进行。
A. 栈顶B. 栈底C. 任意位置D. 指定位置2.当利用大小为n的数组顺序存储一个栈时,假定用top==n表示栈空,则向这个栈插入一个元素时,首先应执行()语句修改top指针。
A. top++;B. top--;C. top = 0;D. top;3.若让元素1,2,3依次进栈,则出栈次序不可能出现()种情况。
A. 3, 2, 1B. 2, 1, 3C. 3, 1, 2D. 1, 3, 24.在一个顺序存储的循环队列中,队头指针指向队头元素的()位置。
A. 前一个B. 后一个C. 当前D. 后面5.当利用大小为n的数组顺序存储一个队列时,该队列的最大长度为()。
A. n-2B. n-1C. nD. n+16.从一个顺序存储的循环队列中删除一个元素时,需要()。
A. 队头指针加一B. 队头指针减一C. 取出队头指针所指的元素D. 取出队尾指针所指的元素7.假定一个顺序存储的循环队列的队头和队尾指针分别为front和rear,则判断队空的条件为()。
A. front+1 == rearB. rear+1 == frontC. front == 0D. front == rear8.假定一个链式队列的队头和队尾指针分别为front和rear,则判断队空的条件为()。
A. front == rearB. front != NULLC. rear != NULLD. front == NULL9.设链式栈中结点的结构为(data, link),且top是指向栈顶的指针。
若想在链式栈的栈顶插入一个由指针s所指的结点,则应执行操作()。
A. top->link = s;B. s->link = top->link; top->link = s;C. s->link = top; top = s;D. s->link = top; top = top->link;10.设链式栈中结点的结构为(data, link),且top是指向栈顶的指针。
一、填空题1.数据的最小单位是( C )。
A. 数据项B. 数据类型C.数据元素D.数据变量2.算法指的是( D )。
A.计算机程序 B.解决问题的计算方法C.排序算法 D.解决问题的有限运算序列3.下面关于线性表的叙述错误的是(C )。
A. 线性表采用顺序存储必须占用一片连续的存储空间B. 线性表采用链式存储不必占用一片连续的存储空间C. 线性表采用链式存储便于插入和删除操作的实现D. 线性表采用顺序存储便于插入和删除操作的实现5.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有()个空指针域。
A. 2m-1B. 2mC. 2m+1D. 4m6.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为()。
A. R-FB. F-RC. (R-F+M)%MD. (F-R+M)%M7.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为()。
A. BADCB. BCDAC. CDABD. CBDA8.设某完全无向图中有n个顶点,则该完全无向图中有()条边。
A. n(n-1)/2B. n(n-1)C. n2D. n2-19. 满二叉树_______二叉树。
A. 一定是完全B.不一定是完全C.不是D.不是完全10.设某棵二叉树中有2000个结点,则该二叉树的最小高度为()。
A. 9B. 10C. 11D. 1211.设某有向图中有n个顶点,则该有向图对应的邻接表中有()个表头结点。
A. n-1B. nC. n+1D. 2n-112.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为()。
A. 2,3,5,8,6B. 3,2,5,8,6C. 3,2,5,6,8D. 2,3,6,5,813.栈和队列的共同特点是( A )。
数据结构复习题及答案数据结构习题一、名词解释1.数据、数据元素、数据项、数据结构、数据的逻辑结构、数据物理结构、顺序存储、链式存储、算法、时间复杂度、空间复杂度。
2.线性表、顺序表、单链表、双向链表、循环链表、双向循环链表、三个概念的区别:头指针、头结点、首元结点(第1个元素结点)。
3.栈(顺序栈、链栈)、队列(顺序队、链队)、循环队列、递归、稀疏矩阵、三元组。
4.树、叶子结点、结点的度、树的度、树的高(深)度、二叉树、遍历、满二叉树、完全二叉树、哈夫曼树、WPL、哈夫曼编码。
5.图(有向、无向)、网、边、弧、度、入度、出度、完全图(有向、无向)、(强)连通图(分量)、(最小)生成树、邻接矩阵、邻接表、DFS、BFS。
6.查找表、关键字、静态查找、动态查找、ASL、顺序查找、折半查找、分块查找、二叉排序树。
7、排序、内(外)排序、稳定性、插入(直接、希尔),交换(起泡、快速),选择(直接、堆),2路归并。
一、填空题1.数据结构是研究数据的_逻辑结构__和___物理结构__,并在这种结构上定义相关的运算,设计实现这些运算的算法,分析算法的效率。
算法的效率包括时间和空间两个方面,分别称为___时间复杂度____和__空间复杂度___。
2.数据的基本单元是__数据元素__,数据的最小单元是__数据项_。
3.算法是对特定问题求解___步骤___的一种描述,是指令的有限序列。
4.一个算法的时间复杂度为(3n3+2n—7),其数量级表示为O(n3)_。
5.一个算法具有5个特性:确定性、可行性、有穷性、输入和输出。
6.算法机能的阐发和怀抱,能够从算法的工夫庞大度和空间庞大度来评判算法的好坏。
7.数据的逻辑布局包孕调集布局、线性布局、树形布局和图型布局四品种型。
8.数据布局在计较机中的表示称为数据的物理布局,它能够采用__按次存储___或__链式存储_两种存储方法。
9.线性表有两种存储布局,划分为按次存储和链式存储。
数据结构习题及答案(3)第九章排序⼀、选择题1.在所有排序⽅法中,关键字⽐较的次数与记录得初始排列次序⽆关的是()(A)希尔排序(B)起泡排序(C)插⼊排序(D)选择排序参考答案:D2.设有1000个⽆序的元素,希望⽤最快的速度挑选出其中前10个最⼤的元素,最好()排序法。
(A)起泡排序(B)快速排序(C)堆排序(D)基数排序参考答案:C3.在待排序的元素序列基本有序的前提下,效率最⾼的排序⽅法是()(A)插⼊排序(B)选择排序(C)快速排序(D)归并排序参考答案:A4.⼀组记录的排序码为(46,79,56,38,40,84),则利⽤堆排序的⽅法建⽴的初始推为()。
(A)79,46,56,38,40,80 (B)84,79,56,38,40,46(C)84,79,56,46,40,38 (D)84,56,79,40,46,38参考答案:B5.⼀组记录的关键码为(46,79,56,38,40,84),则利⽤快速排序的⽅法,以第⼀个记录为基准得到的⼀次划分结果为()。
(A)38,40,46,56,79,84(B)40,38,46,79,56,84(C)40,38,46,56,79,84(D)40,38,46,84,56,79参考答案:C6.⼀组记录的排序码为(25,48,16,35,79,82,23,40,36,72),其中含有5个长度为2的有序表,按归并排序的⽅法对该序列进⾏⼀趟归并后的结果为()。
(A)16,25,35,48,23,40,79,82,36,72(B)16,25,35,48,79,82,23,36,40,72(C)16,25,48,35,79,82,23,36,40,72(D)16,25,35,48,79,23,36,40,72,82参考答案:A7.排序⽅法中,从未排序序列中依次取出元素与⼰排序序列(初始时为空)中的元素进⾏⽐较,将其放⼊⼰排序序列的正确位置上的⽅法,称为()(A)希尔排序(B)起泡排序(C)插⼊排序(D)选择排序参考答案:C8.排序⽅法中,从未排序序列中挑选元素并将其依次放⼊⼰排序序列(初始为空)的⼀端的⽅法,称为()(A)希尔排序(B)归并排序(C)插⼊排序(D)选择排序参考答案:D9.⽤某种排序⽅法对线性表(25,84,21,47,15,27,68,35,20)进⾏排序时,元素序列的变化情况如下:(1)25,84,21,47,15,27,68,35,20 (2)20,15,21,25,47,27,68,35,84(3)15,20,21,25,35,27,47,68,84 (4)15,20,21,25,27,35,47,68,845则所采⽤的排序⽅法是()。
《数据结构》期末复习题及参考答案- 第3章栈和队列一、选择题1、对于栈,操作数据的原则是()。
A. 先进先出B. 后进先出C. 后进后出D. 不分顺序2、要求数据遵循FIFO(先进先出)原则的数据结构是()。
A. 线性表B. 链表C. 队列D. 栈3、若进栈的序列为1,2,3,4,则以下哪一个不可能是一个出栈序列。
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、设栈的输入序列是1,2,3,4,则()不可能是其出栈序列。
(A) f->next=c;f=s (B) r->next=s;r=s(C) s->next=r;r=s (D) s->next=f;f=s7、一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是()。
A. 2 3 4 1 5B. 5 4 1 3 2C. 2 3 1 4 5D. 1 5 4 3 28、数字1、2依次入栈,则出栈的顺序可能有()种情况;数字1、2依次进入队列,则出队列的顺序可能有()种情况。
A. 1 , 2B. 2 , 1C. 2 , 2D. 1 , 19、设一个栈的输入序列是1,2,3,4,5,则下列序列中,是栈的合法输出序列的是()。
A. a,c,b,dB. b, c,d,aC. c, d,b, aD. d, c,a,b11、顺序存储的栈和队列中已经各有N个结点,要删除一个结点分别需要移动数据()次和()次。
A. N/2 , NB. N , N/2C. 0 , ND. N , 012、设有三个元素X,Y,Z顺序进栈(进的过程中允许出栈),下列得不到的出栈排列是( )。
A. 递归部分B. 终止条件和递归部分C. 迭代部分D.终止条件和迭代部分14、如下四个选项中,那个选项是能够正确判断循环队列是否排满元素的操作(其中MAXQSIZE表示队列的容量)():A.if (Q.rear == Q.front) …B.if (Q.rear == (Q.front + MAXQSIZE))C.if (Q.rear == (Q.front + 1) % MAXQSIZE)的元素个数为()。
第6章树6.1选择题1.一棵具有n个结点的完全二叉树的树高度(深度)是()A)⎣log2n⎦+1 B)log2n +1 C)⎣ log2n ⎦D)log2n-12.有关二叉树下列说法正确的是()A)二叉树的度为2 B)一棵二叉树的度可以小于2C)二叉树中至少有一个结点的度为2 D)二叉树中任何一个结点的度都为23.二叉树的第I层上最多含有结点数为()A)2I B)2I-1-1 C)2I-1 D)2I-14.具有10个叶结点的二叉树中有()个度为2的结点A)8 B)9 C)10 D)115.在下述结论中,正确的是()①只有一个结点的二叉树的度为0;②二叉树的度为2;③二叉树的左右子树可任意交换;④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。
A)①②③B)②③④C)②④D)①④6.由3 个结点可以构造出多少种不同的二叉树?()A)2 B)3 C)4 D)57.引入二叉线索树的目的是()A)加快查找结点的前驱或后继的速度B)为了能在二叉树中方便的进行插入与删除C)为了能方便的找到双亲D)使二叉树的遍历结果惟一8.有n个叶子的哈夫曼树的结点总数为()A)不确定B)2n C)2n+1 D)2n-19.一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足()A)所有的结点均无左孩子B)所有的结点均无右孩子C)只有一个叶子结点D)是任意一棵二叉树10.一棵完全二叉树上有1001个结点,其中叶子结点的个数是()A)250 B)500 C)505 D)以上答案都不对11.已知一棵二叉树的后序遍历序列为DABEC,中序遍历序列为DEBAC,则它的先序遍历序列为()A)ACBED B)DECAB C)DEABC D)CEDBA12.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A)9 B)11 C)15 D)不确定13.利用二叉链表存储树时,根结点的右指针是()A)指向最左孩子B)指向最右孩子C)空D)非空14.设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。
练习1.内存中一片连续空间(不妨假设地址从1到m),提供给两个栈S1和S2使用,怎样分配这部分存储空间,使得对任一个栈,仅当这部分空间全满时才发生上溢。
2.叙述前序和中序遍历二叉树的步骤;一棵前序序列为1,2,3,4的二叉树,其中序序列可能是4,1,2,3吗?设一棵二叉树的前序序列为1,2,3,4,5,6,7,8,9,其中序序列为2,3,1,5,4,7,8,6,9,试画出该二叉树。
3.设有一个关键码的输入序列{ 55, 31, 11, 37, 46, 73, 63 },(1) 从空树开始构造平衡二叉搜索树, 画出每加入一个新结点时二叉树的形态。
若发生不平衡, 指明需做的平衡旋转的类型及平衡旋转的结果。
(2) 计算该平衡二叉搜索树在等概率下的查找成功的平均查找长度。
4.设散列表为HT[0..12],即表的大小为m=13。
现采用双散列法解决冲突。
散列函数和再散列函数分别为:H0(key)=key%13; 注:%是求余数运算(=mod)H i=(H i-1+REV(key+1)%11+1)%13; i=1,2,3,…,m-1、其中,函数REV(x)表示颠倒10进制数x的各位,如REV(37)=73,REV(7)=7等。
若插入的关键码序列为{2,8,31,20,19,18,53,27}。
(1)试画出插入这8个关键码后的散列表。
(2)计算搜索成功的平均搜索长度ASL。
5.下图表示一个地区的通讯网,边表示城市间的通讯线路,边上的权表示架设线路花费的代价,如何选择能沟通每个城市且总代价最省的n-1条线路,画出所有可能的选择。
6.给出一组关键字:29,18,25,47,58,12,51,10,分别写出按下列各种排序方法进行排序时的变化过程:(1)归并排序每归并一次书写一个次序。
(2)快速排序每划分一次书写一个次序。
(3)堆排序先建成一个最大堆,然后每从堆顶取下一个元素后,将堆调整一次。
7.假设用于通讯的电文由5个字母组成,A B C D E F ,字母在电文中的出现频率分别为0.09,0.12,0.07,0.22,0.23,0.27,画出哈夫曼树,并写出各个字符的哈夫曼编码。
一、单项选择题1.下面的叙述不是算法的特性的是。
A.有穷性B.输入性C.可行性D.可读性2.在data_structure=(D,S)中,D是的有限集。
A.数据元素B.算法C.数据操作D.数据对象3.在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是。
A.p=p->next;B.p->next=p->next->next;C.p->next=p;D.p=p->next->next;4.下面程序段的时间复杂度是。
for(i=0;i<n;i++)for(j=1;j<m;j++)A[i][j]=0;A.O(n)B.O(m+n+1)C.O(m+n)D.O(m*n)5.设C语言数组Data[m+1]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句是。
A.front=front+1B.front=(front+1)%mC.front=(front+1)%(m+1)D. rear=(rear+1)%m6.下列说法正确的是。
A.线性表的逻辑顺序与物理顺序总是一致的。
B.线性表的顺序存储表示优于链式存储表示。
C.线性表的顺序存储结构优于链式存储结构。
D.每种数据结构都应具备三种基本运算:插入、删除和搜索7.如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是。
A.完全图B.连通图C.有回路D.一棵树8.采用邻接表存储的图,其广度优先遍历类似于二叉树的。
A. 按层次遍历B. 中序遍历C. 后序遍历D. 先序遍历9.在对查找表的查找过程中,若被查找的数据元素不存在,则把该数据元素插入到集合中。
这种方式主要适合于。
A.静态查找表B.动态查找表C. 静态查找表与动态查找表D.两种表都不适合10.对数据元素序列(49,72,68,13,38,50,97,27)进行排序,前三趟排序结束时的结果依次为:第一趟:13,72,68,49,50,97,27;第二趟:13,27,68,49,38,50,97,72;第三趟:13,27,38,49,68,50,97,72;该排序采用的方法是。
数据结构练习题第一章绪论一.选择题1、在数据结构的讨论中把数据结构从逻辑上分为()。
A.内部结构与外部结构B.静态结构与动态结构C.线性结构与非线性结构D.紧凑结构与非紧凑结构2、采用线性链表表示一个向量时,要求占用的存储空间地址()。
A: 必须是连续的 B 部分地址必须是连续的C: 一定是不连续的C: 可连续可不连续3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为()。
A: n B: n/2 C: (n-1)/2 D: (n+1)/24、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行()。
A: s→next = p→next;p→next = s; B: p→next= s; s→next = q;C: p→next = s→next;s→next = p;D: q→next= s;s→next= p;8.下面程序段的时间复杂度为____________。
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)9.执行下面程序段时,执行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)/2二.填空题1.通常,评价一个算法有正确性、健壮性、_________、时间复杂度、空间复杂度五个方面。
2.在数据结构中,数据的逻辑结构有线性结构、图结构、________________、_______________四种,物理实现上有顺序结构、索引结构、___________、_____________四种。
第三章线性表一.选择题1.在一个单链表HL中,若要向q所指结点之后插入一个指针p指向的结点,则执行.A. HL=p; p->next=HLB. P->next=HL; HL=pC. P->next=q->next; q->next=pD. P->next=q->next; q=p->next2.在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移个元素。
A、n-iB、n-i+1C、n-i-1D、i3.在一个长度为n的顺序存储线性表中,删除第i个元素(1≤i≤n+1)时,需要从前向后依次前移个元素。
A、n-iB、n-i+1C、n-i-1D、i4.在一个长度为n的线性表中顺序查找值为x的元素时,查找时的平均查找长度(即x同元素的平均比较次数,假定查找每个元素的概率都相等)为。
A、nB、n/2C、(n+1)/2D、(n-1)/25.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行。
A、HL = p; p->next = HL;B、p->next = HL; HL = p;C、p->next = HL; p = HL;D、p->next = HL->next; HL->next = p;6.在一个单链表HL中,若要在指针q所指的结点的后面插入一个由指针p所指的结点,则执行。
A、q->next = p->next ; p->next = q;B、p->next = q->next; q = p;C 、q->next = p->next; p->next = q;D 、p->next = q->next ; q->next = p;7.在一个单链表HL 中,若要删除由指针q 所指向结点的后继结点,则执行 。
A 、p = q->next ; p->next = q->next;B 、p = q->next ; q->next = p;C 、p = q->next ; q->next = p->next;D 、q->next = q->next->next; q->next = q;6. 链表不具有的特点是 。
A. 不必事先估计存储空间B. 可随机访问任一元素C. 插入删除不需要移动元素D. 所需空间与线性表长度成正比二.填空题1.在单链表中,删除指针 P 所指结点的后继结点的语句是: 。
2.在以HS 为表头指针的单链表中,链表为空的条件分别为________。
向一个链栈插入p 所指向的结点时,需要把栈顶指针的值赋给p 所指向的结点的_____,然后把p 赋给_______。
3.在带表头附加结点的线性链表HL 中,链表为空的条件为________________。
对于单链表,若要在指针 P 所指结点之后插入由指针 S 所指结点,则需要执行的语句序列为: 。
4.在线性表的顺序存储结构中,若每一个元素占 l 个存储单元,则第I 个元素ai 的存储位置为 LOC(ai) = LOC(a1) +5.在线性表的单链接存储结构中,每个结点包含有两个域,一个叫 域,另一个叫 域。
6.在下面数组a 中链接存储着一个线性表,表头指针为a[0].next ,则该线性表为7.对于一个长度为n 的顺序存储的线性表,在表头插入元素的时间复杂度为 ,在表尾插入元素的时间复杂度为 。
8.对于一个长度为n 的单链接存储的线性表,在表头插入元素的时间复杂度a data next为,在表尾插入元素的时间复杂度为。
9.在线性表的顺序存储中,若一个元素的下标为i,则它的前驱元素的下标为,后继元素的下标为。
10.在线性表的单链接存储中,若一个元素所在结点的地址为p,则其后继结点的地址为,若假定p为一个数组a中的下标,则其后继结点的下标为。
11.在循环单链表中,最后一个结点的指针指向结点。
12.在双向链表中每个结点包含有两个指针域,一个指向其结点,另一个指向其结点。
13.在循环双向链表中表头结点的左指针域指向结点,最后一个结点的右指针域指向结点。
14.在以HL为表头指针的带表头附加结点的单链表和循环单链表中,链表为空的条件分别为和。
第四章栈和队列一.选择题1.栈的插入与删除操作在进行。
A、栈顶B、栈底C、任意位置D、指定位置2.当利用大小为N的一维数组顺序存储一个栈时,假定用top==N表示栈空,则向这个栈插入一个元素时,首先应执行语句修改top指针。
A、top++B、top--C、top=0D、top3.若让元素1,2,3依次进栈,则出栈次序不可能出现种情况。
A、3,2,1 B、2,1,3 C、3,1,2 D、1,3,2 4.在一个循环顺序队列中,队首指针指向队首元素的位置。
A、前一个B、后一个C、当前D、后面5.当利用大小为N的一维数组顺序存储一个循环队列时,该队列的最大长度为。
A、N-2B、N-1C、ND、N+16.从一个循环顺序队列删除元素时,首先需要。
A、前移一位队首指针B、后移一位队首指针C、取出队首指针所指位置上的元素D、取出队尾指针所指位置上的元素7.假定一个循环顺序队列的队首和队尾指针分别为f和r,则判断队空的条件是。
A、f+1==rB、r+1==fC、f==0D、f==r8.假定一个链队的队首和队尾指针分别为front和rear,则判断队空的条件是。
A、front==rearB、front!=NULLC、rear!=NULLD、front==NULL9、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为()。
A: 4, 3, 2, 1 B: 2, 4, 3, 1 C: 1, 2, 3, 4 D: 3, 2, 1, 4 10.当利用大小为N的数组顺序存储一个栈时,如果使用top==0表示栈空,那么该栈最多可保存______个数据。
A. NB. N+1C. N-1D. 011.假定一个链队的队首和队尾指针分别为front和rear,则判断队空的条件为A. front == rearB. front != NULLC. rear != NULLD. front == NULL12.设输入序列为1、2、3、4,则借助栈所得到的输出序列不可能是。
A. 1、2、3、4B. 4、3、2、1C. 1、3、4、2D. 4、1、2、313.队列的操作原则是。
A. 先进后出B. 先进先出C. 只能进行插入D. 只能进行删除二.填空题1.队列的插入操作在进行,删除操作在进行。
2.栈又称为表,队列又称为表。
3.向一个顺序栈插入一个元素时,首先使后移一个位置,然后把待插入元素到这个位置上。
4.从一个栈中删除元素时,首先取出,然后再前移一位。
5.在一个循环顺序队列Q中,判断队空的条件为,判断队满的条件为。
6.在一个顺序栈中,若栈顶指针等于,则为空栈;若栈顶指针等于,则为满栈。
7.在一个链栈中,若栈顶指针等于NULL,则为;在一个链队中,若队首指针与队尾指针的值相同,则表示该队列为或该队列为。
8.向一个链栈插入一个新结点时,首先把栈顶指针的值赋给,然后把新结点的存储位置赋给。
9.从一个链栈中删除一个结点时,需要把栈顶结点的值赋给。
10.向一个顺序队列插入元素时,需要首先移动,然后再向所指位置新插入的元素。
11、当用长度为N的一维数组顺序存储一个栈时,假定用top==N表示栈空,则表示栈满的条件为。
12.向一个栈顶指针为HS的链栈中插入一个新结点*P果,应执行和操作。
13.从一个栈顶指针为HS的非空链栈中删除结点并不需要返回栈顶结点的值和回收结点时,应执行操作。
14.假定front和rear分别为一个链队的队首和队尾指针,则该链队中只有一个结点的条件为。
15. 中缀算术表达式3+4/(25-(6+15))*8 所对应的后缀算术表达式为。
16. 后缀算术表达式24 8 + 3 * 4 10 7 - * / 所对应的中缀算术表达式为,其值为。
17.假设队列Q 采用循环队列存储,则队列中当前有个元素。
18.在用一维数组A[N]存储一个顺序循环队列时,若队列的队首、尾指针分别用f和r表示,则对列长度为_________。
19.中缀表达式5+2*(y-1)/2的后缀表达式为________________________。
20.栈是一种特殊的线性表,它允许在表的一端进行操作。
三、阅读算法,回答问题(10分)1、void AE(Stack&S){InitStack(S);Push(S,30);Push(S,20*2);Push(S,15);Int x=3*Pop(S)+Pop(S);Push(S,x);int i,a[4]={5,9,18,15};x=0;For (i=0;i<4;i++){Push(S,a[i]);x+=a[i];}Push(S,x);While(! StackEmpty(S))cout<<Pop(S)<<' ';}该算法被调用后输出结果为:3.执行下面函数调用后得到的输出结果是什么?void AF(Queue & Q){InitQueue(Q);int a[4] = { 5,8,12,15 };for ( int i=0; i<4; i++ ) QInsert(Q,a[i]);QInsert(Q,QDelete(Q));QInsert(Q,30);QInsert(Q,QDelete(Q)+10);while ( ! QueueEmpty(Q) ) cout <<QDelete(Q)<<’ ‘;}第五章树和二叉树一、填空题1.对于一棵具有n个结点的树,该树中所有结点的度数之和为______。