欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    武汉理工大学数据结构复习题.docx

    • 资源ID:15255830       资源大小:50.65KB        全文页数:19页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    武汉理工大学数据结构复习题.docx

    1、武汉理工大学数据结构复习题复习题集一判断题( )1. 在决定选取何种存储结构时,一般不考虑各结点的值如何。( )2. 抽象数据类型与计算机内部表示和实现无关。( )3. 线性表采用链式存储结构时,结点和结点内部的存储空间可以是不连续的。( )4. 链表的每个结点中都恰好包含一个指针。( )5.链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。( )6. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。( )7. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。 ( )8. 线性表在物理存储空间中也一定是连续的。( )9. 顺

    2、序存储方式只能用于存储线性结构。( )10.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。( )11.对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。 ( )12.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。( )13.两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。( )14.二叉树的度为2。( )15.若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n1个非空指针域。( )16.二叉树中每个结点的两棵子树的高度差等于1。 ( )17.

    3、用二叉链表法存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。( )18.具有12个结点的完全二叉树有5个度为2的结点。( )19.二叉树的前序遍历序列中,任意一个结点均处在其孩子结点的前面。( )20.在冒泡法排序中,关键值较小的元素总是向前移动,关键值较大的元素总是向后移动。( )21.计算机处理的对象可以分为数据和非数据两大类。( )22.数据的逻辑结构与各数据元素在计算机中如何存储有关。( )23.算法必须用程序语言来书写。( )24.判断某个算法是否容易阅读是算法分析的任务之一。( )25.顺序表是一种有序的线性表。( )26.分配给顺序表的内存单元地址必须是连续的

    4、。( )27.栈和队列具有相同的逻辑特性。( )28.树形结构中每个结点至多有一个前驱。( )29.在树形结构中,处于同一层上的各结点之间都存在兄弟关系。( )30.如果表示图的邻接矩阵是对称矩阵,则该图一定是无向图。( )31.如果表示图的邻接矩阵是对称矩阵,则该图一定是有向图。( )32.顺序查找方法只能在顺序存储结构上进行。( )33.折半查找可以在有序的双向链表上进行。( )34.满二叉树中不存在度为1的结点。( )35.完全二叉树中的每个结点或者没有孩子或者有两个孩子。( )36.对n个元素执行快速排序,在进行第一次分组时,排序码的比较次数总是n-1次。( )37.在有向图中,各顶点

    5、的入度之和等于各顶点的出度之和。一、选择题( )1. 在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:A) 访问第i个结点(1in)和求第i个结点的直接前驱(2in) C) 删除第i个结点(1in)B) 在第i个结点后插入一个新结点(1in) D) 将n个结点从小到大排序( )2. 算法分析的目的是:A) 找出数据结构的合理性 B) 研究算法中的输入和输出的关系C) 分析算法的效率以求改进 D) 分析算法的易懂性和文档性( )3. 算法分析的两个主要方面是:A) 空间复杂性和时间复杂性 B) 正确性和简明性C) 可读性和文档性 D) 数据复杂性和程序复杂性( )4. 计算机算法指的是

    6、:A) 计算方法 B) 排序方法 C) 解决问题的有限运算序列 D) 调度方法( )5. 计算机算法必须具备输入、输出和 等5个特性。A) 可行性、可移植性和可扩充性 B) 可行性、确定性和有穷性C) 确定性、有穷性和稳定性 D) 易读性、稳定性和安全性( )6. 一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是:(A)110 (B)108 (C)100 (D)120( )下列选项中与数据存储结构无关的术语是:A.顺序表 B.链表 C.链队列 D.栈( )7. 链接存储的存储结构所占存储空间:(A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针(B)

    7、只有一部分,存放结点值(C) 只有一部分,存储表示结点间关系的指针(D) 分两部分,一部分存放结点值,另一部分存放结点所占单元数( )8. 带头结点的单链表head,链表为空的判定条件是(A)head = NULL (B) head-next =NULL ( C) head-next =head (D) head!=NULL( )9. 一个栈的输入序列为1,2,3,n,若输出序列的第一个元素是n,输出第i(1in)个元素是。A) 不确定 B) ni1 C) i D) ni( )10. 最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是 ( )。 A) (rear1)%

    8、 n=front B) rear=front C) rear1=front D) (rearl) % n=front( )11. 循环队列A0.m1存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是:(A) (rearfrontm)%m (B) rearfront1 (C) rearfront1 (D) rearfront( )12. 若用一个大小为6的数值来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为:(A) 1和5 (B) 2和4 (C) 4和2 ( D) 5和1( )13.

    9、按照二叉树的定义,具有3个结点的二叉树有( )种。A) 3 B) 4 C) 5 D) 6 利用排列组合知识来做( )14. 若一棵二叉树中度为l的结点个数是3,度为2的结点个数是4,则该二叉树叶子结点的个数是:(A) 4 (B) 5 (C) 7 (D) 8( )15. 具有n(n0)个结点的完全二叉树的深度为:() log2(n) () log2(n) () log2(n) +1 () log2(n)+1( )16. 对一个满二叉树,m个叶子,n个结点,深度为h,则:(A) n = h+m (B) h+m = 2n (C) m = h-1 (D) n = 2h-1( )17在高度为h的完全二叉

    10、树中,表述正确的是( )A.度为0的结点都在第h层上 B.第i(1ih)层上的结点都是度为2的结点C.第i(1ih)层上有2i-1个结点 D.不存在度为1的结点( )18. 深度为5的二叉树至多有( )个结点。A) 32 B) 31 C) 16 D) 10( )19. 用邻接表表示图进行深度优先遍历时,通常采用( )结构来时实现算法。A) 栈 B) 队列 C) 树 D) 图( )20. 对N个记录作顺序查找时,当查找成功时,平均查找长度是( )。A) N2 B) N2/2 C) N D)(N1)/2( )21. 当一个有n个顶点的图用邻接矩阵A表示时,顶点Vi的度是( )。(A) B) C)

    11、D) + ( )22某算法的时间复杂度为O(2n),表明该算法的( )A.问题规模是2n B.执行时间等于2n C.执行时间近似与2n成正比 D.问题的规模近似与2n成正比( )23“二叉树为空”意味着二叉树( )A.由一些没有赋值的空结点构成 B.根结点没有子树 C.不存在 D.没有结点( )24数据结构的研究内容不涉及( )A.数据如何组织 B.数据如何存储 C.数据的运算如何实现 D.算法用什么语言描述( )25在存储数据时,通常不仅要存储各数据元素的值,而且还要存储A.数据的处理方法 B.数据元素的类型 C.数据元素之间的关系 D.数据的存储方法( )26数据采用顺序存储,要求( )A

    12、.存储的是属于线性结构的数据 B.根据结点值的大小,有序存放各结点C.按存储单元地址由低到高的顺序存放各结点 D.各结点存放方法有规律,能隐含表示结点间的逻辑关系( )27一个顺序表所占存储空间大的大小与( )无关A.顺序表长度 B.结点类型 C.结点中各字段的类型 D.结点存放顺序( )28数据采用链接存储,要求( )A.每个结点占用一片连续的存储区域 B.所有结点占用一片连续的存储区域C.结点的最后一个字段是指针型的字段 C.每个结点有多少个后继,就设多少个指针字段( )29算法的时间复杂度与( )有关A.问题规模 B.计算机硬件性能 C.编译程序质量 D.程序设计语言( )30在程序中,

    13、为了设置一个空的顺序表,必须( )A.给各数组元素赋空值 B.给各顺序表元素赋空值 C.给表示顺序表长度的变量赋初始值 D.给数组变量名赋初始值( )31若变量H是某个带表头结点循环单向链表的表头指针,则在该链表最后的一个结点的后继指针域中存放的是( )A.H的地址 B.H的值 C.表头结点的值 D.首元结点的地址( )32栈和队列的共同点在于( )A.逻辑特性 B.存储结构 C.运算方法 D.元素类型( )33栈和队列的共同点在于( )A.都对存储方法作了限制 B.都是只能进行插入、删除运算C.都对插入、删除的位置作了限制 D.都对插入、删除两中操作的先后顺序作了限制( )34若5个元素的进

    14、栈序列是1,2,3,4,5,则不可能得到出栈序列( )A.1,2,3,4,5 B.3,4,2,5,1 C.4,2,1,3,5 D.5,4,3,2,1( )35顺序循环队列中是否可以插入下一个元素,( )A.与队首指针和队尾指针的值有关 B.只与队尾指针的值有关,与队首指针的值无关C.只与数组大小有关,与队首指针和队尾指针的值无关 D.与曾经进行过多少次插入操作有关( )36在顺序队列中,元素的排列顺序( )A.由元素插入队列的先后顺序决定 B.与元素值的大小有关C.与队首指针和队尾指针的取值有关 D.与数组大小有关( )37在高度为h的完全二叉树中,( )A.度为0的结点都在第h层上 B.第i

    15、(1ih)层上的结点都是度为2的结点C.第i(1ih)层上有2i-1个结点 D.不存在度为1的结点( )38一颗二叉树如图所示,其中序遍历的序列为:A. ABDGCEFH B. DGBAECHF C. GDBEHFCAD. ABCDEFGH( )39采用邻接表存储的图的深度优先遍历算法类似于二叉树的A先序遍历 B中序遍历 C后序遍历 D按层遍历( )40采用邻接表存储的图的广度优先遍历算法类似于二叉树的A先序遍历 B中序遍历 C后序遍历 D按层遍历( )41.已知关键字序列为(51,22,83,46,75,18,68,30),对其进行快速排序,第一趟划分完成后的关键字序列是A.(18,22,3

    16、0,46,51,68,75,83) B.(30,18,22,46,51,75,83,68)C.(46,30,22,18,51,75,68,83) D.(30,22,18,46,51,75,68,83)二、填空题1数据结构包括数据的 、数据的 和数据的 这三个方面的内容。2下面程序段的时间复杂度是 。i 0; while(inext ; (2) P-next = P; (3) P-next = P-next-next(4) P-next = P-next-next; (5) while(P!=NULL) P = P-next ;(6) while(Q-next != NULL) P = Q; Q

    17、=Q-next;(7) while(P-next != Q) P = P-next;(8) while(P-next-next != Q) P = P-next;(9) while(P-next-next != NULL) P = P-next;(10) Q = P; (11) Q = P-next; (12) P = L ; (13) L = L-next; (14) free(Q);7栈是一种特殊的线性表,允许插入和删除运算的一端称为 。不允许插入和删除运算的一端称为 。8设栈S的初始状态为空,若元素a、b、c、d、e、f依次进栈,得到的出栈序列是b、d、c、f、e、a,则栈S的容量至少是

    18、 。9用S表示入栈操作,X表示出栈操作,若元素入栈的顺序为1234,为了得到1342出栈顺序,相应的S和X的操作串为 。10数据的逻辑结构可以分为 和 两大类。11数据的运算用 表示。12逻辑上相邻的结点在存储器中也相邻,这是 存储结构的特点。13在长度为n的顺序表上实现定位操作,其算法的时间复杂度为 。14为了实现随机访问,线性结构应该采用 存储。15在长度为n的顺序表中插入一个元素,最多要移动 个元素。16栈的存储结构主要有 和 两种。17在编写程序的时候,如果栈的最大长度难以预先估计,则最好使用 栈。18在树形结构中,如果某结点 ,则称该结点为根结点;如果某结点 ,则称该结点为叶子。19

    19、在树形结构中,每个结点最多只有一个 。20 由3个结点所构成的二叉树有 种形态。 21二叉树的前序遍历按如下三个步骤进行: ; ; 。22二叉树的中序遍历按如下三个步骤进行: ; ; 。23在n个顶点的无向图中,至少有 条边,至多有 条边。24在n个顶点的有向图中,至少有 条边,至多有 条边。25如果排序不改变 之间的相对次序,则称该排序方法是稳定的。26如果排序改变了 之间的相对次序,则称该排序方法是不稳定的。27当待排关键字序列基本有序时,快速排序、简单选择排序和直接插入排序三种排序方法中,运行效率最高的是 。28在一个图中,所有顶点的度数之和是所有边数的 倍。29无向图中边的数目等于邻接

    20、矩阵中非零元素个数的 倍。30折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素 比较大小。31在有序表(2,4,6,8,10,12,14,16,18)上用折半查找法查找元素9,其中第二次被比较的元素是 。32在有序表(2,4,6,8,10,12,14,16,18)上用折半查找法查找元素9,其中第三次被比较的元素是 。三、简答题1对链表设置头结点的作用是什么?(至少说出两条好处)2.写出下列程序段的输出结果(队列中的元素类型QElem Type为char)。void main( )Queue Q; Init Queue (Q);C

    21、har x=e; y=c;EnQueue (Q,h); EnQueue (Q,r); EnQueue (Q, y);DeQueue (Q,x); EnQueue (Q,x); DeQueue (Q,x); EnQueue (Q,a); while(!QueueEmpty(Q) DeQueue (Q,y); printf(y); ;Printf(x);3. 简述以下算法的功能(栈和队列的元素类型均为int)。void algo3(Queue &Q)Stack S; int d;InitStack(S);while(!QueueEmpty(Q) DeQueue (Q,d); Push(S,d);w

    22、hile(!StackEmpty(S) Pop(S,d); EnQueue (Q,d); 4. 描述以下三个概念的区别:头指针、头结点、首元结点(第一个元素结点)。在单链表中设置头结点的作用是什么?5.对以下单链表执行下列语句,简述代码的功能,并画出单链表结果示意图。T = L;while(T-next != NULL) T-data = 2 * T-data; T = T-next;6. 请画出下图的邻接矩阵和邻接表7假设二叉树采用顺序存储结构,如图所示。(1) 画出二叉树表示;(2) 写出先序遍历、中序遍历和后序遍历的结果;(3) 写出结点值c 的双亲结点,其左、右孩子;1 2 3 4 5

    23、 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20eafdgcjhib8. 树和二叉树之间有什么样的区别与联系?9. 一棵二叉树中的结点的度或为0或为2,则二叉树的枝数为2(n0-1),其中n0是度为0的结点的个数。10. 一个深度为L的满K叉树有以下性质:第L层上的结点都是叶子结点,其余各层上每个结点都有K棵非空子树,如果按层次顺序从1开始对全部结点进行编号,求:(1)各层的结点的数目是多少?(2)编号为n的结点的双亲结点(若存在)的编号是多少?(3)编号为n的结点的第i 个孩子结点(若存在)的编号是多少?(4)编号为n的结点有右兄弟的条件是什么?如果有,其右

    24、兄弟的编号是多少?请给出计算和推导过程。11. 如果用一个循环数组q0.m-1表示队列时,该队列只有一个队列头指针front,不设队列尾指针rear,而改置计数器count用以记录队列中结点的个数。(1)编写实现队列的三个基本运算:判空、入队、出队(2)队列中能容纳元素的最多个数是多少?【此题超出教学范围,不作解答。】12. 已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,画出此二叉树。并给出其后序遍历的结果。13假设以二叉链表表示二叉树,其类型定义如下:typedef struct node char data;struct node*lchild, *rchild;

    25、 左右孩子指针 *BinTree;阅读下列程序。void f13(BinTree T)InitStack(S); 初始化一个堆栈Swhile(T | !StackEmpty(S)while(T)Push(S,T);T=T-lchild;if(!StackEmpty(S)T=Pop(S);printf(“%c”,T-data);T=T-rchild;回答下列问题:(1)已知以T为根指针的二叉树如图所示,请写出执行f13(T)的输出结果:(2)简述算法f13的功能。14设如下图所示的二叉树B的存储结构为二叉链表,root为根指针,结点结构为:(lchild,data,rchild)。其中lchil

    26、d,rchild分别为指向左右孩子的指针,data为字符型,root为根指针,试回答下列问题:(1)对下列二叉树B,执行下列算法traversal(root),试指出其输出结果;(2)假定二叉树B共有n个结点,试分析算法traversal(root)的时间复杂度。二叉树BC的结点类型定义如下:struct nodechar data;struct node *lchild, rchild;C算法如下:void traversal(struct node *root)if (root) printf(“%c”, root-data); traversal(root-lchild); printf

    27、(“%c”, root-data);traversal(root-rchild);15.已知有向图的邻接表如图所示,请回答下面问题:(1)给出该图的邻接矩阵;(2)从结点A出发,写出该图的深度优先遍历序列。16. 设要将序列Q, H, C, Y, P, A, M, S, R, D, F, X中的关键码按字母序的升序重新排列。简述快速排序的思路,并以第一个元素为轴中心,给出用快速排序对序列一趟扫描的结果。四、算法填空1假设线性表用不带头结点的单向链表表示,结点数据类型如下:struct node int s; node * next;下面的算法用于求线性表的长度。请在方框中填入适当的内容,将算法

    28、补充完整。int GetLinkLen(node *h) int s;s=0; s=s+1; ;return(s);2设有n个顺序表元素存放在数组v1vn中,数组v的最大下标为n0,元素类型为TElem. 下面的算法用于删除顺序表中第一个值为x的元素。请在方框中填入适当内容,将算法补充完整。void DeleValue (TElem x) int i, j; i=1; While( ) i=i+1; if(i=n) vj-1=vj; ;五、算法设计题1.从顺序表中删除值为x的元素。2.将顺序存储结构线性表(v1, v2, , vn)改变成(vk+1,vk+2, vn,v1,v2, vk)。3.将顺序存储的线性表(v1, v2, , vn)改变成(v1, v3, v5,)。4.从顺序表中删除重复的元素,并使剩余元素间的相对次序保持不变。5.从键盘输入一系列整数,建立一个长度为n的、不含重复元素的顺序表。6.从键盘输入n个整数,建立带表头结点的单向链表。7.设H是带表头结点的单向链表的表头指针,将链表中数值重复的结点删除。8. 设有一带头结点的单链表,编程将链表颠倒过来。要求不用另外的数组或结点完成。9. 统计出单链表HL中结点的值等于给定


    注意事项

    本文(武汉理工大学数据结构复习题.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开