数据结构习题集含参考答案.pdf
《数据结构习题集含参考答案.pdf》由会员分享,可在线阅读,更多相关《数据结构习题集含参考答案.pdf(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构习题集含答案目录目录 . 1选择题 . 2第一章绪论 . 2第二章线性表 . 4第三章栈和队列 . 6第四章串. 9第五章数组和广义表 . 9第六章树和二叉树 . 10第七章图. 13第八章查找 . 15第九章排序 . 17简答题 . 21第一章绪论 . 21第二章线性表 . 22第三章栈和队列 . 23第四章串. 25第六章树和二叉树 . 25第七章图. 29第八章查找 . 32第九章排序 . 33编程题 . 35第一章绪论 . 35第二章线性表 . 35第三章栈和队列 . 37第四章串. 37第五章数组和广义表 . 37第六章树和二叉树 . 37第七章图. 37第八章查找 . 37
2、第九章排序 . 39选择题第一章绪论1. 数据结构这门学科是针对什么问题而产生的?(A )A、针对非数值计算的程序设计问题 B 、针对数值计算的程序设计问题C、数值计算与非数值计算的问题都针对 D、两者都不针对2. 数据结构这门学科的研究内容下面选项最准确的是(D )A、研究数据对象和数据之间的关系 B 、研究数据对象C、研究数据对象和数据的操作 D、研究数据对象、数据之间的关系和操作3. 某班级的学生成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那么下面关于数据对象、数据元素、数据项描述正确的是(C )A、某班级的学生成绩表是数据元素,90 分是数据项B、某班级的学生成绩表是数
3、据对象,90 分是数据元素C、某班级的学生成绩表是数据对象,90 分是数据项D、某班级的学生成绩表是数据元素,90 分是数据元素4. 数据在计算机存储器内表示时, 物理地址与逻辑地址不相同, 称之为(C ) 。A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构5. 算法分析的目的是( C )A、找出数据的合理性B 、研究算法中的输入和输出关系C、分析算法效率以求改进D 、分析算法的易懂性和文档型性6. 算法分析的主要方法( A ) 。A、空间复杂度和时间复杂度B、正确性和简明性C、可读性和文档性D、数据复杂性和程序复杂性7. 计算机内部处理的基本单元是(B )A、数据B、数据元素C、数据
4、项D、数据库8. 数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要( B ) 。A、低B、高C、相同D、不好说9. 算法的时间复杂度取决于(C )A 、问题的规模B、待处理数据的初始状态C、问题的规模和待处理数据的初始状态D、不好说10. 在数据结构中,从逻辑上可以把数据结构分成(C )A、动态结构和静态结构B、紧凑结构和非紧凑结构C、线性结构和非线性结构D、内部结构和外部结构11. 线性表的顺序存储结构是一种( A )的存储结构。A、随机存取B、顺序存取C、索引存取D、散列存取12. 线性表的链式存储结构是一种(B )存储结构。A、随机存取B、顺序存取C
5、、索引存取D、散列存取13. 在数据结构中 ,从逻辑上可以把数据结构分成(C )。A、 动态结构和静态结构B、 紧凑结构和非紧凑结构C、 线性结构和非线性结构D、 内部结构和外部结构14. 在数据结构中 ,从存储结构上可以将之分为(B )。A、 动态结构和静态结构B、 顺序存储和非顺序存储C、 紧凑结构和非紧凑结构D、 线性结构和非线性结构15. 某算法的时间复杂度是O(n2),表明该算法的 ( A)。A、 执行时间与n2 成正比B、 问题规模是n2 C、 执行时间等于n2 D、 问题规模与n2 成正比16. 在下面的程序段中 ,x=x+1; 的语句频度为 (C )。for( i=1;i=n;
6、i+) for( j=1;j=n;j+) x=x+1; A、 O(2n) B、 O(n) C、 O(n2) D、 O(log2n) 17. 以下数据结构中 ,( A)是非线性数据结构。A、 树B、 字符串C、 队D、 栈18. 顺序存储 ,存储单元的地址 ( A)。A、 一定连续B、 一定不连续C、 不一定连续D、 部分连续 ,部分不连续19. 评价一个算法性能好坏的重要标准是(C )。A、 算法的正确性B、 算法易于调试C、 算法的时间和空间复杂度D、 算法易于理解第二章线性表1. 关于线性表的说法不正确的是?(D )A、存在唯一的一个被称为“第一个”的数据元素(开始结点)B、存在唯一的一个
7、被称为“最后一个”的数据元素(终端结点)C、除第一个之外,集合中的每个数据元素均只有一个前驱D、除第一个之外,集合中的每个数据元素均只有一个后继2. 关于顺序表的说法不正确的是?(D )A、逻辑关系上相邻的两个元素在物理存储位置上也相邻B、可以随机存取表中任一元素,方便快捷C、在线性表中插入某一元素时,往往需要移动大量元素D、在线性表中删除某一元素时,无需移动大量元素3. 当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用什么存储结构?(A )A、顺序表B 、单链表C、循环链表 D、双链表4.在一个长度为 n 的顺序表中第 i 个元素( 1=i
8、next B、 p =null C 、p-next=null D、p-next = p-next-next 9.下述哪一条是顺序存储结构的优点(D) 。A、 可方便地用于各种逻辑结构的存储表示 B、 插入运算方便C、 删除运算方便 D、 存储密度大10. 若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算 , 则利用 (A) 存储方式最节省时间。A、 顺序表 B、 双链表 C、 带头结点的双循环链表 D、 单循环链表11. 设某顺序表中第一个元素的地址是se( 下标从 1开始), 每个结点占 m个单元 ,则第 i 个结点的地址为 (A) 。A、 se+(i-1)m B 、
9、 se+(i+1)m C 、 se+i m D、 se-im 12. 某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素 , 则采用 (B) 存储方式最节省运算时间。A、 单链表 B、 仅有尾指针的单循环链表C、 仅有头指针的单循环链表 D、 双链表13. 若长度为 n 的线性表采用顺序存储结构, 在其第 i 个位置插入一个新元素的算法的时间复杂度为 (A) 。A、 O(n) B、 O(0) C、 O(1) D、 O(n2) 14. 在单链表指针为 p 的结点之后插入指针为s 的结点 , 正确的操作是 (A) 。A、 s-next=p-next;p-next=s; B、 p
10、-next=s;s-next=p-next; C、 p-next=s;p-next=s-next; D、 p-next=s-next;p-next=s; 15. 对于一个头指针为 head的带头结点的单链表 , 判定该表为空表的条件是 (A) 。A、 head next=NULL; B、 head=NULL; C、 head next=he; D、 head!=NULL; 第三章栈和队列1.栈、队列通常采用两种存储结构,它们是(B ) A、散列方式和索引方式B、顺序存储结构和链式存储结构C、链表存储结构和数组D、 线性和非线性存储结构2.一个栈入栈序列是a,b,c,d, 则栈输出序列不可能是
11、(C ) A、d,c,b,a B 、c,d,b,a C、d,c,a,b D、a,b,c,d 3.判断顺序栈(最多结点数为m )为栈满的条件是( D )A、top=0 B、 top!=m C、 top!=0 D、top=m 4.栈存取数据原则(或栈特点)是(B )A、后进后出 B 、后进先出 C、先进先出 D、随意进出5.一个队列的进队序列为: a,b,c,d,则出队序列是: ( A ) A、a,b,c, d B、 d ,c,b,a C、a,d,c, b D、 c ,b,d,a 6.循环队列为空队列的条件是: (D)A、Q.front=0 B、 Q. (rear+1)%MaxSize=Q.fro
12、nt C、 Q.rear=0 D、 Q.rear=Q.front 7.在存储结构上,如果用带头节点单链表实现队列(假定front和 rear 分别为队首和队尾指针),则删除一个结点的操作为(A ) 。A、front.next=front.next.next B、rear=rear.next C、rear=front.next D、front= front.next 8.栈和队列共同点是( C )A、先进后出B、先进先出C、允许在端点处进行操作线性表D、无共同点9.插入和删除只能在一端进行的线性表是(B )A、循环队列 B、栈 C、队列 D、循环栈10. 插入和删除分别在两端端进行的线性表是(C
13、 )A、循环队列 B、栈 C、队列 D、循环栈11. 循环队列为满队列的条件是: (B )A、Q.front=0 B、 Q. (rear+1)%MaxSize=Q.front C、 Q.rear=0 D、 Q.rear=Q.front 12. 栈和队列都是 ( D) 。A、 限制存取点的非线性结构B、 顺序存储的线性结构C、 链式存储的非线性结构D、 限制存取点的线性结构13. 设栈 S和队列 Q的初始状态为空 , 元素 e1,e2,e3,e4,e5和 e6依次通过栈 S,一个元素出栈后随即进入队列Q,若 6 个元素出队的序列是e2,e4,e3,e6,e5,e1,则栈 S的容量至少应该是 (
14、A) 。A、 3 B、 6 C、 4 D、 2 14. 设计一个判别表达式中括号是否匹配出现的算法, 采用(A ) 的数据结构最佳。A、 栈B、 顺序表C、 队列D、 单链表15. 表达式 a*(b+c)-d的后缀表达式是 (C ) 。A、 abc*+d- B、 cb+a*d- C、 abc+*d- D、 abcd+*- 16. 递归过程或函数调用时 , 处理参数及返回地址需要用一种( A) 的数据结构。A、 栈B、 队列C、 多维数组D、 线性表17. 最大容量为 n的循环队列 , 队尾指针为 rear, 队头指针为 front,则队空的条件是(A ) 。A、 rear=front B、 (
15、rear+1)%n=front C、 rear+1=front D、 (rear-l)%n=front 18. 用带头结点的单链表表示队长大于1 的队列时 , 其队头指针指向队头结点, 其队尾指针指向队尾结点 , 则在进行删除操作时 (A ) 。A、 仅修改队头指针B、 仅修改队尾指针C、 队头、队尾指针都要修改D、 队头 ,队尾指针都可能要修改19. 对于一个具有 n 个结点的单链表 , 在已知的结点 *p 后插入一个新结点的时间复杂度和在给定值为x 的结点后插入一个新结点的时间复杂度分别为( A) 。A、 O(1),O(n) B、 O(n),O(n) C、 O(1),O(1) D、 O(n
16、),O(1) 第四章串1.关于串的叙述,错误的是: (B )A串是字符有限序列B空串是由空格构成的串C模式匹配是串的重要运算 D 串有用顺序、链式两种存储方式2.串长度是指( B )A串所含不同字母数目 B串所含字符数目C串所含不同字符数目 D串所含非空格字符数目3.设串 S1是串 S子串,则求 S1在 S中定位运算称为( B )A求子串 B串匹配 C联接 D求串长4.设有串 s1=”welcome to zdsoft colleage!”和 s2=”so”, 那么 s2 在 s1中的索引位置是( C )A12 B14 C13 D10 5.串是一种特殊的线性表 , 其特殊性体现在 (A ) 。
17、A、 数据元素是字符 B、 顺序存储 C、 链式存储 D、 逻辑结构是线性结构6.设有两个串 p 和 q , 其中 q 是 p 的子串 , 求 q 在 p 中首次出现的位置的算法称为(A ) 。A、 串的模式匹配 B、 求子串 C、 串联接 D、 求串长第五章数组和广义表1. 假设以行序为主序存储二维数组A=array1.100,1.100,设每个数组元素占 2 个存储单元 , 基地址为 10, 则 LOC5,5=( A) 。A、 818 B、 B 808 C、 1010 D、 1020 2. 在稀疏矩阵的三元组顺序表中, 每个三元组表示 (D ) 。A、 矩阵中数据元素的行号、列号和数据值B
18、、 矩阵中非零元素的数据值C、 矩阵中数据元素的行号和列号D、 矩阵中非零元素的行号、列号和数据值第六章树和二叉树1.假设在一棵二叉树中,双分支结点数为15,单分支结点数为 30 个,则叶子结点数为( B )个。A. 15 B. 16 C. 17 D. 47 2. 假定一棵三叉树的结点数为50,则它的最小高度为( C ) 。A. 3 B. 4 C. 5 D. 6 3. 在一棵二叉树上第4 层的结点数最多为( D ) 。A. 2 B. 4 C. 6 D. 8 4. 用顺序存储的方法将完全二叉树中的所有结点逐层存放在数组中R1.n, 结点 Ri若有左孩子,其左孩子的编号为结点(B ) 。A. R2
19、i+1 B. R2i C. Ri/2 D. R2i-1 5. 设 n , m 为一棵二叉树上的两个结点,在中序遍历序列中n 在 m 前的条件是(B ) 。A. n 在 m 右方B. n 在 m 左方C. n 是 m 的祖先D. n 是 m 的子孙6. 下面叙述正确的是( D ) 。A. 二叉树是特殊的树B. 二叉树等价于度为2 的树C. 完全二叉树必为满二叉树D. 二叉树的左右子树有次序之分7. 现有一深度为 5 的二叉树,请问其最多有(D )个结点。A. 32 B. 5 C.30 D. 31 8. 现有一深度为 4 的二叉树,请问其最多有(A )个结点。A. 15 B. 16 C.17 D.
20、6 9. 在一棵二叉排序树上按(B )遍历得到的结点序列是一个有序序列。A. 先序B. 中序C.后序D.头序10. 在一棵二叉树中,度为 0 的结点数为 n0, 度为 2 的结点数为 n2, 则 n0= ( C )A. n+1 B. n+2 C.n2+1 D.2n+1 11. 由三个结点构成的二叉树,共有(B )种不同的形态。A. 4 B. 5 C.6 D.7 12. 一棵含有 n 个结点的树,( A )形态达到最大深度。A. 单支树B. 二叉树C.三 叉树D.n 叉树13. 不含任何结点的空树(C ) 。.是一棵树 ; .是一棵二叉树 ; .是一棵树也是一棵二叉树; .既不是树也不是二叉树1
21、4. 二叉树是非线性数据结构,所以( C ) 。.它不能用顺序存储结构存储; .它不能用链式存储结构存储; .顺序存储结构和链式存储结构都能存储; .顺序存储结构和链式存储结构都不能使用15. 具有 n(n0)个结点的完全二叉树的深度为(C )。.log2(n) . log2(n) . log2(n) +1 .log2(n)+116. 在一棵三元树中度为3 的结点数为 2 个,度为 2 的结点数为 1 个,度为 1的结点数为 2 个,则度为 0 的结点数为( D )个。A. 4 B. 5 C.6 D.7 17. 有关二叉树下列说法正确的是(B )A二叉树的度为2 B 一棵二叉树的度可以小于2
22、C二叉树中至少有一个结点的度为2 D二叉树中任何一个结点的度都为2 18. 在完全二叉树中,若一个结点是叶结点,则它没(C ) 。A左子结点B右子结点C左子结点和右子结点D左子结点,右子结点和兄弟结点19. 在下列情况中,可称为二叉树的是(B ) A每个结点至多有两棵子树的树B. 哈夫曼树 C每个结点至多有两棵子树的有序树D. 每个结点只有一棵右子树20. 树最适合用来表示的结构是(A )。A、 元素间具有分支及层次关系的结构B、 元素间的有序结构C、 元素间的无序结构D、 元素间无联系的结构21. 任意一棵二叉树的叶子结点在其先序、中序、后序序列中的相对位置( B)。A、 肯定发生变化B、
23、肯定不发生变化C、 有时发生变化D、 无法确定22. 判断线索二叉树中某结点P 有左孩子的条件是 (D )。A、 p-LTag=1 B、 p!=NULL C、 p-lchild!=NULL D、 p-LTag=0 23. 设森林 T 中有 4 棵树,其结点个数分别为n1,n2,n3,n4, 那么当森林 T 转换成一棵二叉树后 ,则根结点的右子树上有 (A )个结点。A、 n2+n3+n4 B、 n1-1 C、 n1 D、 n1+n2+n3 24. 以数据集 4,5,6,7,10,12,18 为叶结点权值所构造的哈夫曼树,其带权路径长度为(C )。A、 155 B、 160 C、 165 D、
24、170 25. 以下属于前缀编码的是 ( A)。A、 0,1101,1110,1100,1111 B、 0,1,01,010,110 C、 00,01,10,11,101 D、 01,00,10,001,110,101 26. 一棵具有 N 个结点的二叉树采用二叉链表进行存储,其中空指针域有 ( A )个。A、 N+1 B、 N C、 N-1 D、 不确定27. 已知一棵度为 3 的树有 2 个度为 1 的结点 ,3 个度为 2 的结点 ,4 个度为 3 的结点,则该树中有 (C )个叶子结点。A、 10 B、 11 C、 12 D、 13 第七章图1. 图的深度优先遍历类似于二叉树的(A )
25、 。A先序遍历B中序遍历C后序遍历D层次遍历2. 已知一个图如图所示,若从顶点a 出发按深度优先遍历,则可能得到的一种顶点序列为( D )Aabecdf Bacfebd Caebcfd Daedfcb 3. 若从无向图的任意一个顶点出发进行一次深度优先搜索可以访问图中所有的顶点,则该图一定是(B )图。A非连通B连通C强连通D有向4. 在一个图中,所有顶点的度数之和等于所有边数的(C )倍。A 1/2 B 1 C 2 D 3 5. 在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的(B )倍。A 1/2 B 1 C 2 D 3 6. 一个有 N 个顶点的有向图最多有(B )条边。A N
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 习题集 参考答案
限制150内