北京理工大学《数据结构》试题及答案(B卷)
《数据结构》期终考试试卷(B卷)及答案

适用专业:一、单项选择题(每题2分,共40分)1.算法的时间复杂度是指( )A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数2.在一个单链表HL中,若要删除由指针q所指向结点的后继结点,则执行()。
A.p = q->next ; p->next = q->next; B.p = q->next ; q->next = p;C.q->next = q->next->next; q->next = q; D.p = q->next ; q->next = p->next; 3.下列叙述中正确的是( )A.线性表是线性结构 B. 栈与队列是非线性结构C.线性链表是非线性结构 D. 二叉树是线性结构4.若让元素1,2,3依次进栈,则出栈次序不可能出现()种情况。
A.3,2,1 B.2,1,3 C.3,1,2 D.1,3,25.图的广度优先搜索类似于树的()次序遍历。
A.先根B.中根C.后根D.层次6.具有n个顶点的有向无环图最多可包含()条有向边。
A.n-1 B.n C.n(n-1)/2 D.n(n-1)7.已知单链表A长度为m,单链表B长度为n,若将B联接在A的末尾,其时间复杂度应为( ) 。
A.O(1) B.O(m) C.O(n) D.O(m+n)8.若要在单链表中的结点*p之后插入一个结点*s,则应执行的语句是( )。
A.s->next=p->next; p->next=s; B.p->next=s; s->next=p->next;C.p->next=s->next; s->next=p; D.s->next=p; p->next=s->next;9.假定一个链式队列的队头和队尾指针分别为front和rear,则判断队空的条件为( )。
北理工《889数据结构》考研真题

2013年北京理工大学一、选择题。
(每小题2分,共40分)1.数据结构在计算机中的表示称为______。
A.物理结构B.逻辑结构C.虚拟结构D.抽象结构2.数据结构对外的接口主要是通过______体现的。
A.数据对象B.数据关系C.基本操作D.数据元素3.设N是描述问题规模的非负整数,下面程序片段的时间复杂度是______。
x=N;while(x>0)x=x/2;A.O(log2N) B.O(N) C.O(Nlog2N) D.O(N2)4.线性链表中一个结点所占用的空间______。
A.必须连续B.部分地址必须连续C.不一定连续D.连续与否无所谓5.将长度为m的单链表接在长度为n的单链表的后面,算法的时间复杂度为______。
A.O(n) B.O(1) C.O(m) D.O(m+n)6.设顺序表长度为n,从表中删除元素的概率相等。
则在平均情况下,从表中删除一个元素需要移动的元素个数是______。
A.(n-1)/2 B.n/2 C.n(n-1)/2 D.n(n+1)/27.在单链表中,增加一个头结点的目的是______。
A.方便运算的实现B.用于标识单链表C.使单链表至少有一个结点D.用于标识起始点的位置8.写出链栈的类型定义如下:9.一个栈的输入序列为a b c d e f,则下列序列中不可能的输出序列是______。
A.b c d a f e B.f e d c b aC.f e d c a b D.e d c b f a10.若一个栈以向量V[0..n-1]存储,设栈空时,栈顶指针top为n,则下面x进栈的正确操作是______。
A.top=top+1;V[top]=x;B.V[top]=x;top=top+1;C.top=top-1;V[top]=x;D.V[top]=x;top=top-1;11.一个队列的入队序列是a b c d e f,则队列的输出序列是______。
A.a b c d e f B.f e d c b aC.f e d c a b D.e d c b f a12.下列更适合表示队列的链表结构是______。
数据结构B期末考试 B卷及参考答案

一、单项选择题(每小题2分,共30分)1.下列关于栈的叙述中,正确的是()。
A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对2.在数据结构中,与所使用的计算机硬件无关的是数据的()结构。
A.逻辑B.存储C.逻辑和存储D.物理3.以下说法正确的是()。
A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构4.六个元素按照6,5,4,3,2,1的顺序入栈,下列哪一个是合法的出栈序列?()A.546132 B.453126 C.346512 D.2341565.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为()A.8 B.9 C.10 D.116.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是()A.(100,80,90,60,120,110,130)B.(100, 120, 110,130,80, 60,90)C.(100,60,80,90,120,110,130)D.(100,80, 60,90, 120, 130,110)7.下列陈述中正确的是()A.二叉树是度为2的有序树B.二叉树中结点只有一个孩子时无左右之分C.二叉树中必有度为2的结点D.二叉树中最多只有两棵子树,并且有左右之分8.在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为()A.e B.2e C.n2-e D.n2-2e9.栈和队列都是()A.限制存取位置的线性结构B.顺序存储的线性结构C.链式存储的线性结构D.限制存取位置的非线性结构10.在具有n个叶子结点的严格二叉树(即结点的度要么是0要么是2)中,结点总数为()A.2n+1 B.2n C.2n-1 D.2n-211.在循环双链表的p所指的结点之前插入s所指结点的操作是()。
2022年北京理工大学计算机应用技术专业《计算机系统结构》科目期末试卷B(有答案)

2022年北京理工大学计算机应用技术专业《计算机系统结构》科目期末试卷B(有答案)一、选择题1、计算机组成设计不考虑()A.专用部件设置B.功能部件的集成度C.控制机构的组成D.缓冲技术2、在计算机系统的层次结构中,机器被定义为()的集合体A.能存储和执行相应语言程序的算法和数据结构B.硬件和微程序(固件)C.软件和固件D.软件和硬件3、在流水机器中,全局性相关是指( )。
A.先写后读相关B.先读后写相关C.指令相关D.由转移指令引起的相关4、费林按指令流和数据流的多倍性把计算机系统分类,这里的多倍性指()。
A.系统瓶颈部件上处于同一执行阶段的指令流是数据流的多少倍。
B.系统瓶颈部件上处于同一执行阶段的数据流是指令流的多少倍。
C.系统瓶颈部件上处于同一执行阶段的指令或数据的最大可能个数。
D.A和B5、目前,MO由()实现,M1用()实现,M2至M5大多用()实现。
A.软件,固件,硬件B.固件,软件,硬件C.硬件,软件,固件D.硬件,固件,软件6、从计算机系统结构上讲,机器语言程序员所看到的机器属性是()A.计算机软件所要完成的功能B.计算机硬件的全部组成C.编程要用到的硬件组织D.计算机各部件的硬件实现。
7、下列关于虚拟存贮器的说法,比较正确的应当是( )A.访主存命中率随页面大小增大而提高B.访主存命中率随主存容量增加而提高C.更换替换算法能提高命中率D.在主存命中率低时,改用堆栈型替换算法,并增大主存容量,可提高命中率8、与全相联映象相比,组相联映象的优点是( )A.目录表小B.块冲突概率低C.命中率高D.主存利用率高9、计算机系统的层次结构按照由高到低的顺序分别为()。
A.高级语言机器级,汇编语言机器级,传统机器语言机器级,微程序机器级B.高级语言机器级,应用语言机器级,汇编语言机器级,微程序机器级C.应用语言机器级,传统机器语言机器级,汇编语言机器级,操作系统机器级D.应用语言机器级,操作系统机器级,微程序机器级,传统机器语言机器级10、CRAY-I的流水线是( )A.多条单功能流水线B.一条单功能流水线C.多条多功能流水线D.一条多功能流水线二、判断题11、系列机不再是方向,因为它约束了计算机系统结构的发展。
北京理工大学数据结构试题及答案

北京理工大学数据结构 10 年期末试题数据结构试卷(一)、单选题(每题 2 分,共 20 分)1. 栈和队列的共同特点是 ()。
A. 只允许在端点处插入和删除元素B. 都是先进后出C. 都是先进先出D. 没有共同点2. 用链接方式存储的队列,在进行插入运算时 ().A. 仅修改头指针B. 头、尾指针都要修改C.仅修改尾指针D.头、尾指针可能都要修改10.设有 6个结点的无向图,该图至少应有 ()条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空 1 分,共 26 分)1. 通常从四个方面评价算法的质量: ____________ 、 ________ 、 ________ 和 __________ 。
2. 一个算法的时间复杂度为(n 3+n 2log 2n +i4n )/n 2,其数量级表示为 ____________ 。
3. 假定一棵树的广义表表示为A ( C ,D ( E ,F ,G ),H ( I ,J )),则树中所含的结点数为 __________ 个,树的深度为 ____________ 树的度为 __________ 。
4. 后缀算式 9 2 3 +- 10 2 / -的值为 _________ 。
中缀算式( 3+4X ) -2Y/3 对应的后缀算式 为 ________________________________ 。
5.若用链表存储一棵二叉树时, 每个结点除数据域外, 还有指向左孩子和右孩子的两个指 针。
在这种存储结构中, n 个结点的二叉树共有 ___________ 个指针域,其中有 ________ 个 指针域是存放了地址,有 __________________ 个指针是空指针。
3. 4. 5. 以下数据结构中哪一个是非线性结构? ()A. 队列B. 栈C. 线性表D. 二叉树设有一个二维数组 A [m ][n ],假设A [0][0]存放位置在644伽A [2][2]存放位置在676(io ), 每个元素占一个空间,问A .688B . 树最适合用来表示 (A.有序数据元素A [3][3](IO )存放在什么位置?脚注(io 表示用10进制表示。
北理工《数据结构与算法》在线作业

北理工《数据结构与算法》在线作业试卷总分:100 测试时间:-- 试卷得分:99.5一、单选题(共40 道试题,共99.5 分。
)得分:99.51. 图的存储结构不包括()A. 数组表示B. 邻接表C. 邻接多重表D. 孩子兄弟表示正确答案:D 满分:2.5 分得分:2.52. 当两个元素比较出现反序时就相互交换位置的排序方法称为()。
A. 归并排序B. 选择排序C. 交换排序D. 插入排序正确答案:C 满分:2.5 分得分:2.53. 快速排序属于那种排序类型()。
A. 选择排序B. 插入排序C. 交换排序D. 基数排序正确答案:C 满分:2.5 分得分:2.54. 中序遍历一棵二叉排序树所得到的结点序列是键值的()序列。
A. 递增或递减B. 递减C. 递增D. 无序正确答案:C 满分:2.5 分得分:2.55. 关键路径是指AOE(Activity On Edge)网中()。
A. 最长的回路B. 最短的回路C. 从源点到汇点(结束顶点)的最长路径D. 从源点到汇点(结束顶点)的最短路径正确答案:C 满分:2.5 分得分:2.56. 设有一个二维数A[m][n],以行序为主序存储。
假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,则A[4][5]在()位置,(10)表明用10进数表示。
A. 692(10)B. 626(10)C. 709(10)D. 724(10)正确答案:C 满分:2.5 分得分:2.57. 当待排序列基本有序时,下列排序方法中()最好。
A. 直接插入排序B. 快速排序C. 堆排序。
数据结构B答案

一、单项选择题(本大题共15小题,每小题2分,共30分) 1-5 BAACB 6-10 ADACA 11-15 ACCBB二、填空题(本大题共10个空,每空1分,共10分)16. e=d 17. O(n 2) 18. 17 71 19. 4 , 10 20. N-1 21.线性结构,树型结构,图型结构三、判断题(本大题共10小题,每个1分,共10分)22.× 23.√ 24.× 25. √ 26.√ 27. × 28.× 29.× 30.√ 31.×四、应用题(本大题共4小题,每小题10分,共40分)。
32.可能的序列:a b c a c b b a c b c a c b a .............(5分) 对应的操作序列依次为:(1)push(a), pop(a), push(b), pop(b), push(c), pop(c) (2)push(a), pop(a), push(b), push(c), pop(c), pop(b) (3)push(a), push(b), pop(b) , pop(a), push(c), pop(c) (4)push(a), push(b), pop(b), push(c), pop(c) , pop(a) (5)push(a), push(b), push(c), pop(c), pop(b) , pop(a).............(每个序列1分)33. (4) .............(6分)0 2 3 1 434.....................(画出此树可得7分)。
(2) a:0101, b:10, c:01000, d:11, e:011, f:000, g:01001,h:001 ................... (3分)35. 根据题目给定的散列函数H(K)=K%13,其值域为0~12,可设计用于指向单链表的散列表表头数组HT[0…12]。
北京理工大学2013级数据结构B试题(B卷)_答案

一、选择题1、所谓算法是指【 B 】。
A、计算机程序B、求解特定问题的计算方法C、欧几里德算法D、求解特定问题的指令的有限序列2、在一个单链表中,若p所指结点不是表尾结点,在p之后插入s所指结点,则执行【 B 】。
A、s->next = p; p->next = s;B、s->next = p->next; p->next = s;C、s->next = p->next; p = s; C、p->next = s; s->next = p;3、若已知一个栈的入栈序列是1,2,3,⋯,n,其输出序列为P1,P2,P3, ⋯,Pn,若P1=n,则Pi为【 C 】。
A、iB、n=iC、n-i+1D、不确定4、不带头结点的单链表head为空的判定条件是【 A 】。
A、head==NULLB、head->next==NULLC、head->next==headD、head!=NULL5、若用一个大小为 6 的数组来实现循环队列,且当前 rear 和 front 的值分别为 0 和3。
当从队列中删除一个元素,再加入两个元素后,rear和 front 的值分别为【 B 】。
A、1和5B、2和4C、4和2D、5和16、一棵有124个叶子结点的完全二叉树,最多有【 A 】结点。
A、247B、124C、248D、1257、按照二叉树的定义,具有3个结点的二叉树有【 C 】种。
A、3B、4C、5D、68、在一个有向图中,所有顶点的入度之和是所有顶点的出度之和的【 B 】倍。
A、1/2B、1C、2D、49、对线性表进行二分查找时,要求线性表必须【 C 】。
A、以顺序方式存储B、以链式方式存储C、以顺序方式存储,且结点关键字有序排列。
D、以链式方式存储,且结点关键字有序排列。
10、若一颗二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足【 B 】。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、单项选择题1.算法必须具备的三个特性是( )。
A.可执行性、可移植性、可扩充性B.可执行性、确定性、有穷性C.确定性、有穷性、稳定性D.易读性、稳定性、安全性2.下列数据中,( )是非线性数据结构。
A.栈B.队列C.完全二叉树D.顺序表3.算法分析的两个方面是( )。
A.空间复杂度和时间复杂度B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性4.非空的循环单链表head的尾结点p满足( )。
A.p->next==head B.p->next==NULLC.p==NULL D.p==head5.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是( )。
A.p->next=s;s->next=p->next; B.s->next=p->next;p->next=s;C.p->next=s;p->next=s->next; D.p->next=s->next;p->next=s;6.按照二叉树的定义,具有3个结点的二叉树有( )种。
A.3 B.4C.5 D.67.在一个有向图中,所有顶点的入度之和是所有顶点的出度之和的( )倍。
A.1/2 B.1C.2 D.48.二叉排序树是( )。
A.每一分支结点的度均为2的二叉树B.中序遍历得到一升序序列的二叉树C.按从左到右顺序编号的二叉树D.每一分支结点的值均小于左子树上所有结点的值,大于右子树上所有结点的值9.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别是( )。
A.1和 5 B.2和4C.4和2 D.5和110.下列说法中正确的是( )。
A.堆栈是在两端操作、先进后出的线性表B.堆栈是在一端操作、先进先出的线性表C.队列是在一端操作、先进先出的线性表D.队列是在两端操作、先进先出的线性表11.不带头结点的单链表head为空的判定条件是( )。
A.head==NULL B.head->next==NULLC.head->next==head D.head!=NULL12.设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。
与森林F对应的二叉树根结点的右子树上的结点个数是( )。
A.M1 B.M1+M2C.M3 D.M2+M313.具有10个叶结点的二叉树中有( )个度为2的结点。
A.8 B.9C.10 D.ll14.有n个叶子的哈夫曼树的结点总数为( )。
A.不确定B.2nC.2n+1 D.2n-115.利用二叉链表存储树,则根结点的右指针是( )。
A.指向最左孩子B.指向最右孩子C.空D.非空16.对下图所示的有向图,从顶点V0出发的深度优先遍历序列是( )。
A.V0 V1 V2 V4 V6 V3 V5 B.V0 V1 V4 V6 V2 V5 V3C.V0 V2 V5 V6 V1 V3 V4 D.V0 V1 V2 V3 V4 V5 V617.要连通具有n个顶点的无向图,至少需要( )条边。
A.n-l B.nC.n+l D.2n18.对线性表进行二分查找时,要求线性表必须( )。
A.以顺序方式存储B.以链式方式存储C.以顺序方式存储,且结点关键字有序排列。
D.以链式方式存储,且结点关键字有序排列。
19.静态查找表与动态查找表的根本区别在于( )。
A.它们的逻辑结构不同B.施加在其上的操作不同C.所包含的数据元素类型不同D.存储实现不一样20.一个有n个顶点的有向图最多有( )条边。
A.n B.n(n-1)C.2n D.n(n-1)/2二、判断对错【】1.具有n个顶点的连通图至少有n条边。
【】2.有实现同一功能的两个算法A1和A2,其中A1的时间复杂度为T1(n)=O(2n),A2的时间复杂度为T2(n)=O(n2),仅就时间复杂度而言,A2算法更好。
【】3.链表的单个结点内部的存储空间可以是不连续的。
【】4.在完全二叉树中,若一个结点没有左孩子,则它必是叶子结点。
【】5.假定有4个元素按照A,B,C,D的顺序入栈,入栈过程中允许出栈,则CBDA 是可能的出栈序列。
【】6.顺序存储方式结构只能用于线性结构,不能用于非线性结构。
【】7.二叉树中不存在度大于2的结点。
【】8.高度为k的满二叉树是具有2k+1−1个结点的二叉树。
【】9.对于一棵含有n个结点的树,将其结点按从上到下且从左至右按1至n进行编号,则对其任意一个编号为i的结点,如果它有左孩子,则其左孩子结点的编号为2i。
【】10.在二叉排序树中,最大值结点和最小值结点一定是叶子结点。
三、填空题1.给定序列{100,86,48,73,35,39,42,57,66,21},按堆结构的定义,则它一定是【1】堆。
2.从循环队列中删除数据元素时,需要判满队列是否已经为空,判断条件是:【2】。
3.在一个带头结点的单链表中,p所指结点既不是首元结点,也不是尾元结点,删除p 结点的直接后继结点的语句序列是【3】、【4】。
4.对关键字序列(52,80,63,44,48,91)进行一趟快速排序之后得到的结果为【5】。
5.将含102个结点的完全二叉树从根这一层开始,每层上从左到右依次对结点编号,根结点的编号为1。
编号为32的结点X的双亲编号为【6】、左孩子节点编号为【7】、右孩子节点编号为【8】。
6.如果一个图的邻接矩阵是非对称矩阵,则该图必然是【9】。
7.如以{ 2,3,6,7,9,12 }作为叶子结点的权值构造哈夫曼树,则其最短带权路径长度为【10】。
8.遍历图有【11】、【12】方法。
9.在单链表中,要删除某一指定的结点,必须找到该结点的【13】结点。
10.对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则表头向量的大小为【14】,邻接表中所有结点的总数是【15】。
四、按照指定功能,完成下列算法1.销毁顺序表LStatus DetroyList_Sq ( SqList &L ){ 【1】 ;【2】 ;【3】 ;【4】 ;return OK ;}2、在二叉排序树中查找关键字等于key 的元素Status SearchBST ( BiTree T, KeyType key, BiTree f, BiTree &p)//在根指针T所指二叉排序树中递归地查找其关键字等于key的数据元素,若查找//成功,则指针p指向该数据元素结点,并返回TRUE,否则指针指向查找路径上访//问的最后一个结点并返回FALSE,指针f指向T的双亲,其初始调用值为NULL { if ( !T ) { 【5】 }else if ( EQ( key, T->data.key ) ) { 【6】 }else if ( LT( key, T->data.key ) ) 【7】else 【8】}3、出栈操作算法Status Pop ( SqStack &S, ElemType &e ){ 【9】;【10】;return OK ;}五、简答题1.有一份电文中共使用8个字符:a、b、c、d、e、f、g、h,它们出现的频度分别为:4、7、5、2、9、8、6、3,试设计一个编码使该段电文的总长度为最短。
要求:(1)构造出哈夫曼树(要求所有左子树根结点的权值小于等于右子树根结点的权值); (2)求出每个字符的哈夫曼编码;(3)计算经哈夫曼编码后上述报文的最终长度。
2.对于如下所示的加权无向图,画出用克鲁斯卡尔(Kruskal )算法构造最小生成树的过程中,当生成树有2条、4条、6条边时的生成树。
第2题图3.已知一个有向图如下图所示,请给出该图的: (1)邻接矩阵; (2)邻接表;(3)自顶点1出发进行深度优先遍历和广度优先遍历各一个遍历顶点序列。
第3题图4.设结点关键码的输入序列为{ 53,68,55,17,82,10,45 },试利用二叉排序树的插入算法,分别画出插入过程中二叉排序树有3个、5个、7个节点时的二叉排序树。
5.若一棵二叉树先序遍历和中序遍历序列分别为:先序序列为 ABDEHCFGI ,中序序列为DBEHAFCIG ,试画出这棵二叉树,并给出该二叉树的后续遍历序列。
六、给出下列程序结果9782 126 4431 511AGEF CBD10#include < stdio.h >int c = 0 ;void move( char x, int n, char z ){ printf( "第%i步: 将%i号盘从%c移到%c\n", ++c, n, x, z ) ;}void hanoi( int n, char x, char y, char z ){ if( n==1 )move( x, 1, z ) ;else{ hanoi( n-1, x, z, y ) ;move( x, n, z ) ;hanoi( n-1, y, x, z ) ;}}void main( ){ int n = 3 ;hanoi( n, 'a', 'b', 'c' ) ;}七、算法设计假设以顺序存储结构实现一个双向栈,即在一维数组的存储空间中存在两个栈,它们的栈底分别设在数组的两个端点。
试编写实现这个双向栈tws的三个操作:初始化inistack(tws)、入栈 push(tws,i,x) 和出栈 pop(tws,i) 的算法,其中i取值为0或1,分别指示设在数组两端的两个栈,即通过i的取值区分是对两个栈中的哪一个栈进行入栈和出栈操作。