数据结构练习.docx
《数据结构练习.docx》由会员分享,可在线阅读,更多相关《数据结构练习.docx(21页珍藏版)》请在三一办公上搜索。
1、数据结构习题Lists、选择题1 .在一个长度为n的顺序表中,向第i个元素(1WiWn+1)之前插入一个新元素时,需向后移动 个元素。A. n-1B. n-i+12. 线性表是。A. 一个有限序列,可以为空C. 一个无限序列,可以为空C. n-i-1D. IB. 一个有限序列,不能为空D. 一个无限序列,不能为空3. 对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的,删除一个元素时大约要移动表中的 个元素。A. n+1B. n-1C. (n-1)/2 D. n4. 线性表采用链式存储时,其地。A. 必须是连续的B.部分地址必须是连续的C. 一定是不连续的D.连续与否均可
2、以5. 设单链表中指针p指着结点(数据域为m),指针f指着将要插入的新结点(数据域为x),当x插在结点m之后时,只要先修改 后修改p-link=f即可。A. f-link=p;B. f-link=p-link;C. p-link=f-link;D. f=nil;6. 在双向链表存储结构中,删除p所指的结点时需修改指针。A. (p-rlink) -rlink) -link=p; p-rlink=(p-rlink) -rlink;B. (p-llink) -rlink=p-rlink; (p-rlink) -llink=p-llink;C. p-llink=(p-llink) -llink; (p
3、-llink) -llink) -rlink=p;D. (p-llink) -llink) -rlink=p; p-llink=(p-llink) -llink;7. 在双向链表存储结构中,删除p所指的结点的前趋结点(若存在)时需修改指 针。A. (p-llink) -llink) -rlink=p; p-llink=(p-llink) -llink;B. (p-rlink) -rlink) -llink=p; p-rlink=(p-rlink) -rlink;C. (p-llink) -rlink=p-rlink; (p-rlink) -llink=p-llink;D. p-llink=(p
4、-llink) -llink; (p-llink) -llink) -rlink=p;8. 根据线性表的链式存储结构,每个结点所含指针的个数,链表分为单链表和。A.循环链表 B.多重链表 C.普通链表D.无头结点链表9. 从一个具有n个节点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较 个结点。A. nB. n/2C. (n-1)/2 D. (n+1)/210. 在一个单链表中,已知*q结点是*p结点的前驱结点,若在*4和*?之间插入*,结点, 则执行。A. s-next=p-next; p-next=s;B. p-next=s-next; s-next=p;C. q-next
5、=s; s-next=p;D. p-next=s; s-next=q;、填空1. 在线性结构中第一结点 ,其余每个结点有且只有 ;最后一个结点,其余每个结点有且只有 。2. 对于顺序存储的线性表,当随机插入或删除一个元素时,约需平均移动表长 的元素。3. 对于长度为n的顺序表,插入或删除元素的时间复杂性为 ;对于顺序栈或队歹。,插入或删除元素的时间复杂性为 。4. 从顺序表中删除第i个元素时,首先把第i个元素赋给 带回,接着从 开始向后的所有元素均 一个位置,最后使线性表的长度 。5. 在线性表的顺序存储中,元素之间的逻辑关系是通过 决定的;在线性表的链接存储中,元素之间的逻辑关系是通过 决定
6、的。6. 一个单链表中删除*?结点时,应执行如下操作:(1) q=p-next;(2) p-data=p-next-data;(3) p-next=1;(4) free(q);7. 若要在一个单链表中的*?结点之前插入一个*,结点时,可执行如下操作:(1) s-next=1;(2) p-next=s;(3) t=p-data;(4) p-data=2;(5) s-data=3;8. 对于线性表的顺序存储,需要预先分配好存储空间,若分配太多则容易造成存储空 间的,若分配太少又容易在算法中造,因此适应于数据量 变化不大的情况;对于线性表的链接存储(假定采用动态结点),不需要 分配 存储空间,存储器
7、中的整个 都可供使用,分配和回收结点都非常方便,能 够有效地利用存储空间,在算法中不必考虑 的发生,因此适应数据量变化较大的情况。四、综合题1. 线性表有两种存储结构:一是顺序表,二是链表。试问:(1) 两种存储表示各有哪些主要优缺点?(2) 如果有n个线性表同时并存,并且在处理过程中各表的长度会动态发生变化,线性表的总数也会自动地改变。在此情况下,应选用哪种存储结构?为什么?(3) 若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素,那么,应采用哪种存储结构?为什么?2. 用线性表的顺序结构来描述一个城市的设计和规划合适吗?为什么?3. 在单链表和双向表中,能
8、否从当前结点出发访问到任一结点?4. 编写下列算法(1) 向类型有list的线性表L的第i个元素(OWiWL.len)之后插入一个新元素x。(2) 从类型为list的线性表L中删除其值等于x的所有元素。(3) 将两个有序表A和B合并成一个有序表C,其中A,B,C均为list类型的变参。5. 编写下列算法,假定单链表的表头指针用HL表示,类型为linklist。(1) 将一个单链表中的所有结点按相反次序链接。(2) 删除单链表中第i个(i31)结点。(3) 删除单链表中由指针p所指向的结点。(4) 从带有附加表头结点的循环单链表中删除其值等于x的第一个结点。(5) 在单链表中指针p所指结点之前插
9、入一个值为x的新结点。(6) 从循环单链表中查找出最小值。(7) 根据一维数组A(1:n)中顺序存储的具有n个元素的线性表建立一个带有附加表头结 点的单链表。(8) 请指出下面的过程执行p(5)和p(6)时分别输出的结果。void P(int n);if n0p(n-2);printf(%d”,n);(9) 假定用一个循环单链表表示队列(称此为循环链队),该队列只设一个队尾指针,设队首指针,试编写下列算法:(1) 向循环链队插入一个元素为x的结点;(2) 从循环链队中删除一个结点(假定不需要保留被删除结点的值和不需要回收结点)。Stack/Queue一、选择题1. 在一个具有n个单元的顺序栈中
10、,假定以地址低端作为栈底,以top作为栈顶指针, 则当做退栈处理时,top变化为。A. top 不变B. top= -nC. top=top-1 D. top=top+12. 向顺序栈中压入元素时, 。A.先存入元素,后移动栈顶指针B.先移动栈顶指针,后存入元素3. 在一个顺序存储的循环队列中,队首指针指向队首元素的。A.前一个位置 B.后一个位置 C.队首元素位置D.队尾元素位置5 .若进栈序列为1,2,3,4,进栈过程中可以出栈,则 不可能是一个出栈序列。A. 3,4,2,1 B. 2,4,3,1C. 1,4,2,3 D. 3,2,1,46 .在具有n个单元的顺序存储的循环队列中,假定fr
11、ont和rear分别为队首指针和队 尾指针,则判断队空的条件是 。A. front= =rear+1 B. front+1= =rear C. front= =rear D. front= =07 .在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队首指针和队 尾指针,则判断队满的条件。A. rear % n= =front B. (rear-1) % n= =frontC. (rear-1) % n= =rear D. (rear+1) % n= =front8 .向一个栈项指针为hs的链栈中插入一个*s结点时,则执行。A. hs-next=s;B. s-next=hs-
12、next; hs-next=s;C. s-next=hs; hs=s;D. s-next=hs; hs=hs-next;9. 在一个链队列中,假定front和rear分别为队首指针和队尾指针,则进行插入*,结 点的操作时应执行 。A. front-next=s; front=s;C. front=front-next;B. rear-next=s; rear=s;D. front=rear-next;二、综合题1、试给出链式栈的实现代码?2、试给出链式队列的实现代码?Tree一.选择题(根节点为第1层)1. 假定在一棵二叉树中,双分支结点数为15个,单分支结点数为32个,则叶子结点数 为 。A
13、.15B.16C. 17D.472. 假定一棵二叉树的结点数为18个,则它的最小高度 。A.4B.5C. 6D.183. 在一棵二叉树中第五层(根节点为第1层)上的结点数最多为 。A.8B.15C.16D.324. 在一棵具有五层(根节点为第1层)的满二叉树中,结点总数为 。A.31B.32C.33D.165. 已知8个数据元素为(34、76、45、18、26、54、92、65),按照依次插入结点的方法生成 一棵二叉排序树后,最后两层上的结点总数为 。A. 1B. 2C. 3D. 46. 由分别带权为9、2、5、7的四个叶子结点构造一棵哈夫曼树,该树的带权路径长度A. 23B. 37C. 44
14、D. 467. 在树中除根结点外,其余结点分成m (m30)个 的集合T1,T2,T3.Tm,每个集合 又都是树,此时结点T称为Ti的父结点,Ti称为T的子结点(1WiWm)。A.C.互不相交叶结点可以相交B.可以相交D.树枝结点可以相交8. 下面答案 是查找二叉树(又称二叉排序树)。A. 二叉树中的每个结点的两棵子树的高度差的绝对值不大于1B. 二叉树中的每个结点的两棵子树的高度差等于1C. 二叉树中的每个结点的两棵子树是有序的D. 二叉树中的每个结点的关键字大于其左子树(如果存在)所有结点的关键字值, 且小于其右子树(如果存在)所有结点的关键字值。9. 如果结点A有三个兄弟,而且B是入的双
15、亲,则B的出度是。A. 3B. 4C. 5D. 110. 一个深度为L的满K叉树有如下性质:第L层上的结点都是叶子结点,其余各层上每个结 点都有K棵非空子树。如果按层次顺序从1开始对全部结点编号,编号为n的有右兄弟的 条件是。A. (n-1) % k= =0 B. (n-1) % k!=0 C. n % k= =0 D. n % k!=011. 在完全二叉树中,当i为奇数且不等于1时,结点i的左兄弟是结点 ,否则没 有左兄弟。A. 2i-1B. i+1C. 2i+1D. i-112. 某二叉树T有n个结点,设按某种遍历顺序对T中的每个结点进行编号,编号值为1,2,.,n且有如下性质:T中任一结
16、点V,其编号等于左子树上的最小编号减1,而V 的右子树的结点中,其最小编号等于V左子树上结点的最大编号加1。这时按 编 号。A.中序遍历序列B.前序遍历序列 C.后序遍历序列 D.层次遍历序列13. 最小代价生成树 。A.是唯一的B.不是唯一的C.唯一性不确定D.唯一性与原因的边的权数有关二、填空1. 在树型结构中,树根结点没有 结点,其余每个结点有且仅有;树叶 结点没有 ,其余每个结点的 结点数不受限制。2. 对于一棵具有n个结点的树,则该树中所有结点的度之和为。3. 在一棵二叉树中,度为0的结点的个数为n0,度为2的结点的个数为n2,则:4. 在二叉树的顺序存储中,对于下标为5的结点,它的
17、双亲结点的下标为 ,若 它存在左孩子,则左孩子结点的下标为 ,若它存在右孩子,则右孩子结点 的下标为 。5. 假定一棵二叉树的广义表表示为A(B(,D),C(E(G),F),则该树的深度为,度 为0的结点数为,度为1的结点数为,度为2的结点数为 ;C结点 是A结点的 ,E结点是C结点的 。6. 在一棵二叉排序树中,按 遍历得到的结点序列是一个有序序列。7. 由分别带权为3,9,6,2,5的共五个叶子结点构成一棵哈夫曼树,则带权路径长 8. 假定在二叉树的链接存储中,每个结点的结构为| left | data | right |,其中 data为值域,left和right分别为链接左、右孩子结点
18、的指针域,请在下面中序遍历算法中 画有横线的地方填写合适的语句。void inorder(bt) if( bt != NULL ) (1) ;(2) ;(3) ;Gragh一、选择题1. 在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和白 倍。A. 1/2B. 1C. 2D. 42. 对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则表头向量的大小为 。A. nB. n+1C. n-1D. n+e3. 具有n个顶点的无向完全图,边的总数为 条。A. n-1B. nC. n+1D. n*(n-1)/24. 设图G有n个顶点和e条边,当G是非孤立顶点的连通图时有2e=n,故可推得深
19、度优先搜 索的时间复杂度为。A. O(e)B. O(n)C. O(ne)D. O(n+e)5. 在无向图G的邻接矩阵A中,若Ai,j等于1,则Aj,i等于。A. i+jB. i-jC. 1D. 06. 图的深度优先或广度优先遍历的空间复杂性均为。(访问标志位数组空间)A. O(n)B. O(e)C. O(n-e)D. O(n+e)二、填空1. 在图G的邻接表表示中,每个顶点邻接表中所含的结点数,对于无向图来说等于该顶点 的 ,对于有向图来说等于该顶点的 。2. 假定一个图具有n个顶点和e条边,则采用邻接矩阵表示的空间复杂性为,采用 邻接表表示的空间复杂性为 。3. 已知一个无向图的邻接矩阵如下
20、所示,则从顶点A出发按深度优先搜索遍历得到的顶点序 列为 ,按广度优先搜索遍历得到的顶点序列为ABCDEF厂011010n A1 101011 1 B1 110100 | C1 001001 1 D1 110001 |EL010110J F4. 已知一个图如下所示,在该图的最小生成树中,各边的权值之和为四、综合题1. 证明n个顶点的无向完全图的边数的n(n1)/2。2. 证明一个有n个顶点,e条边的无向图G,必有dj =2e其中dj为顶点j的度。3. 证明若无向图G的顶点度数的最小值大于或等于2,则G有一条回路。4. 设无向图G如下图:该图的邻接矩阵;(2) 该图的邻接表;(3) 从A出发的“
21、深度优先”遍历序列;(4) 从A出发的“广度优先”遍历序列。Sorting、选择题1. 目前以比较为基础的内部排序时间复杂度T(n)的范围是 ;其比较次数与待 排序的记录的初始排列状态无关的是 。A. O(log2 n)O(n)O(nlog2 n)O(n2 )B. 插入排序快速排序 O(lon2 n)O(n2 )O(n)O(n2)O(n)O(nlog2 n)先用二分法查找,找到后插入排序冒泡排序2. 设关键字序列为:3,7,6,9,8,1,4,5,2。进行排序的最小交换次数是。A. 6B. 7C. 8D. 203. 在归并排序过程中,需归并的趟数为 。A. nB. V n C. log2 n
22、向上取整D. log2 n向下取整4. 一组记录排序码为(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)5. 一组记录的关键码为(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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 练习
链接地址:https://www.31ppt.com/p-5306677.html