北京理工大学《数据结构》试题及答案(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 】。
北京理工大学《数据结构》(双语)B卷

ONE. Single-Choice1.In the following data structure, ( ) is linear structure.A.Forest B.StackC.Graph D.Binary Tree2.The Linked List is designed for conveniently ( ) data item.A.getting B.insertingC.finding D.locating3.In the four choices, ( ) is not the principles that algorithm designing must obey.A.Correctness(正确性) B.Readability(可读性)C.Robustness(健壮性) D.Cyclicity(周期性)4.Assume a sequence list as 6,5,4,3,2,1 is pushed in a stack, an impossible output sequence list is ( ).A.3,4,6,5,2,1 B.4,5,3,1,2,6C.5,4,3,6,1,2 D.2,3,4,1,5,65.A stack is a structure that follows the principle of ( ).A.First-In/First-Out B.Lirst-In/Last-OutC.Last-In/First-Out D.Random In and Out6.Removing the data item at index i in an array with n items, ( ) items need to be shifted(移动) left one position.A.n-i B.n-i+1C.i D.n-i-17.There is an algorithm with inserting an item to a ordered SeqList(顺序链表) and still keeping the SeqList ordered. The computational efficiency of this inserting algorithm is ( ).A.O(log2n) B.O(1)C.O(n) D.O(n2)8.The addresses which store Linked List ( ).A.must be sequential B.must be partly sequentialC.must be no sequential D.can be sequential or discontinuous 9.According to the definition of Binary Tree, there will be ( ) different Binary Trees with 3 nodes.A.6 B.5C.4 D.310.The depth of a Binary Tree is 5, it will have ( ) nodes at most.A.31 B.32C.16 D.1011.In the following sorting algorithm, ( ) is an unstable algorithm.A.the insertion sort(插入排序) B.the bubble sort(气泡法排序)C.quicksort(快速排序) D.mergesort(归并排序)12.Assume that there is an ordered list consisting of 100 data items, using binary search(二分法查找) to find a special item, the maximum comparisons is ( ).A.25 B.1C.10 D.713.The result from scanning a Binary Search Tree (二叉排序树) in inorder traversal is in ( ) order.A.descending or ascending B.descendingC.ascending D.out of order14.To connect n vertices in an undirected graph, it needs ( ) edges at least.A.n B.n-1C.n+1 D.115.In a directed graph with n vertexes, the maximum edges is ( ).A.n(n+1)/2 B.n(n-1)/2C.n(n-1) D.n216.The output from scanning a minimum heap(小顶堆) with level traversal algorithm ( ).A.must be an ascending sequence.B.must be descending sequence.C.must have a minimum item at the head position.D.must have a minimum item at the rear position.17.When a recursive algorithm (递归算法) is transformed into a no recursive algorithm, a structure ( ) is generally used.A.SeqList B.StackC.Queue D.Binary Tree18.A algorithm is referred to ( ).A.a calculating methodB.a sorting methodC.a sequential set of instructions to solve a problemD.a searching method19.A circular queue(循环队列) is full if ( ).A.(rear+1)% Maxsize == front B.front == rearC.rear+1 == front D.(rear-1)% Maxsize == front20.The difference between static sorting table(静态查找表) and dynamic sorting table(动态查找表) is ( ).A.the difference in logical structureB.the difference in storage structureC.the difference of data typeD.insertion and deletion only can be done in dynamic sorting tableTWO.Blank filling questions1.A connected graph has 【1】component(s).2.In a complete binary tree,the sequence number of node i’s parent ( if exist ) is 【2】the sequence number of node i’s left child ( if exist ) is 【3】the sequence number of node i’s right child ( if exist ) is 【4】3.【5】is the fastest known sorting algorithm in practice.4.A full binary tree of a given height h(h>=1) has 【6】nodes.5.An undirected graph G has N vertices. The number of edges of a MST (最小生成树)of this graph is 【7】.6.Commonly used graph search methods are 【8】and 【9】. 7.Complete the one pass of quicksorting operations. (一趟快速排序算法)int Partition (RedType& R[], int low, int high){ R[0] = R[low] ;pivotkey = R[low].key; // 枢轴while ( low<high ){ while ( low<high && 【10】) 【11】;R[low]=R[high];while ( low<high && R[low].key<=pivotkey ) 【12】;R[high]=R[low] ;}R[low] = R[0] ;return low ; // 返回枢轴所在位置}THREE. Answer True or False for each of the following assertions.( ) 1.The Minimum Spanning Tree of the graph is always unique.( ) 2.In tree structure, there is exactly one path from the root to each node.( ) 3.For every node in an AVL tree(平衡二叉树), the height of the left and right sub-trees can differ by at most 1.( ) 4.Min Heap can locate the current minimum in O(1) time.( ) 5.For any non-empty tree, if n is the number of nodes and e is the numbers of edges then n=e+1.( ) 6.If a binary search tree has l i leaves at hight i(i>=1), then l i /2i<=1( ) 7.The topological sorted order(拓扑排序) of nodes in a graph ( if it exists ) is always unique.( ) 8.A stack is a linear list in which all additions are restrict to one end, called the top. A stack is also called a FIFO list.( ) 9.The array { 23, 17, 14, 6, 13, 10, 1, 5, 7, 12 } is a heap.( ) 10.We can use Time Complexity and Space Complexity to evaluate the efficiency of an algorithm.FOUR.Assume that we are using the hashing function hash( key ) = key mod 11 and the following sequence of keys create a hash table: 12, 44, 13, 88, 23, 94, 11, 39, 20, 16, 5. Show the resulting hash table: Use linear probing(线性探测再散列) with an increment of 1.FIVE. Show the result of inserting {53,68,55,17,82,10,45} into an initially empty binary search tree. Then show the result of deleting root.SIX. The frequency of the symbols { a, b, c, d, e } is { 4, 7, 5, 2, 9 }. Construct the Huffman tree and give the Huffman code of the symbols { a, b, c, d, e }.SEVEN.Suppose the preorder traversal sequences of a binary tree is ABEGFCDH,the inorder traversal sequences is EGBFADHC. Please construct the binary tree,show the final result and write out the postorder traversal sequence of the binary tree.EIGHT. You are given an undirected graph(fig.1).a. Give adjacency list(邻接表) representation of this graph.b. Construct a minimum spanning tree(最小生成树), using the Prim’s algorithm(普里姆算法). Draw the progress of creation.fig.1NINE. Get the program running results.1.Operation of stack//Suppose Stack and corresponding functions already be corrected defined void main( ){Stack S ;char x, y ;InitStack( S ) ;x=’c’ ; y=’t’ ;Push(S, x) ; Push(S,’u’) ; Push(S, y) ;Pop(S, x) ; Push(S,’r’) ; Push(S, x) ;Push(S, y) ; Pop(S, y) ; Push(S,’s’) ;while( !StackEmpty( S ) ) { Pop( S, y ) ; printf(y) ; }printf( x ) ;}2.Operation of a binary tree.#include <stdio.h>#define LeftChild( i ) ( 2 * ( i ) + 1 )void fun1( int A[ ], int i, int n ){ int Child ;int Tmp ;for( Tmp = A[ i ]; LeftChild( i ) < n; i = Child ){ Child = LeftChild( i ) ;if( Child != n-1 && A[Child+1] > A[Child] ) Child++ ;if( Tmp < A[Child] ) A[i] = A[Child] ;else break ;}A[ i ] = Tmp ;}void fun( int A[ ], int n ){ int i, temp ;for( i = n / 2; i >= 0; i-- )fun1( A, i, n ) ;for( i = n - 1; i > 0; i-- ){ temp = A[0], A[0] = A[i], A[i] = temp ;fun1( A, 0, i ) ;}}#define N 15void main( ){ int a[N]={ 5, 9, 3, 2, 99, 8, 7, 1, 77, 54, 23, 12, 88, -6, -10 } ;int i ;fun( a, N ) ;for( i=0; i<N; i++ )printf( "%d ", a[i] ) ;}TEN.Programming (All methods have been declared in textbook can be used directly, or you can rewrite them if they are not same in your answer)假设以两个元素依值递增有序排列的线性表A和B分别表示两个集合(同一表中的元素值各不相同)。
数据结构试题集(包含答案 完整版)

第一章概论一、选择题1、研究数据结构就是研究( D )。
A. 数据的逻辑结构B. 数据的存储结构C. 数据的逻辑结构和存储结构D. 数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是( A )。
A. 空间复杂度和时间复杂度B. 正确性和简单性C. 可读性和文档性D. 数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。
A. 图B. 树C. 广义表D. 栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。
A. 可执行性、可移植性和可扩充性B. 可执行性、有穷性和确定性C. 确定性、有穷性和稳定性D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是( C )。
for(i=0;i<m;i++)for(j=0;j<n;j++)a[i][j]=i*j;A. O(m2)B. O(n2)C. O(m*n)D.O(m+n)6、算法是( D )。
A. 计算机程序B. 解决问题的计算方法C. 排序算法D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。
A. O(n)B. O(nlog2n)C. O(n2)D. O(log2n)8、下面程序段的时间复杂度为( C )。
i=1;while(i<=n)i=i*3;A. O(n)B. O(3n)C. O(log3n)D. O(n3)9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的()和运算等的学科。
A. 结构B. 关系C. 运算D. 算法10、下面程序段的时间复杂度是(A )。
i=s=0;while(s<n){i++;s+=i;}A. O(n)B. O(n2)C. O(log2n)D. O(n3)11、抽象数据类型的三个组成部分分别为( A)。
A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是()。
北京理工大学数据结构模拟题答案

本资料由理硕教育整理,理硕教育是全国唯一专注于北理工考研辅导的学校,相对于其它机构理硕教育有得天独厚的优势。
丰富的理工内部资料资源与人力资源确保每个学员都受益匪浅,确保理硕教育的学员初试通过率89%以上,复试通过率接近100%,理硕教育现开设初试专业课VIP一对一,初试专业课网络小班,假期集训营,复试VIP一对一辅导,复试网络小班,考前专业课网络小班,满足学员不同的需求。
因为专一所以专业,理硕教育助您圆北理之梦。
详情请查阅理硕教育官网数据结构试卷(一)参考答案一、选择题(每题2分,共20分)1.A2.D3.D4.C5.C6.D7.D8.C9.D 10.A二、填空题(每空1分,共26分)1.正确性易读性强壮性高效率2.O(n)3.9 3 34.-1 3 4 X * + 2 Y * 3 / -5.2n n-1 n+16.e 2e7.有向无回路8.n(n-1)/2 n(n-1)9.(12,40)()(74)(23,55,63)10.增加111.O(log2n) O(nlog2n)12.归并三、计算题(每题6分,共24分)1.线性表为:(78,50,40,60,34,90)2.邻接矩阵:邻接表如图11所示:图113. 用克鲁斯卡尔算法得到的最小生成树为: (1,2)3, (4,6)4, (1,3)5, (1,4)8, (2,5)10, (4,7)204. 见图12四、读算法(每题7分,共14分) 1. (1)查询链表的尾结点(2)将第一个结点链接到链表的尾部,作为新的尾结点(3)返回的线性表为(a 2,a 3,…,an ,a 1) 2. 递归地后序遍历链式存储的二叉树。
五、法填空(每空2分,共8 分) true BST->left BST->right 六、编写算法(8分)int CountX(LNode* HL,ElemType x) { int i=0; LNode* p=HL;//i 为计数器 while(p!=NULL) { if (P->data==x) i++; p=p->next;}//while, 出循环时i 中的值即为x 结点个数 return i; }//CountX数据结构试卷(二)参考答案一、选择题1.D2.B3.C4.A5.A6.C7.B8.C二、填空题1.构造一个好的HASH函数,确定解决冲突的方法2.stack.top++,stack.s[stack.top]=x3.有序4.O(n2),O(nlog2n)5.N0-1,2N0+N16.d/27.(31,38,54,56,75,80,55,63)8.(1,3,4,5,2),(1,3,2,4,5)三、应用题1.(22,40,45,48,80,78),(40,45,48,80,22,78)2.q->llink=p; q->rlink=p->rlink; p->rlink->llink=q; p->rlink=q;3.2,ASL=91*1+2*2+3*4+4*2)=25/94.树的链式存储结构略,二叉树略5.E={(1,3),(1,2),(3,5),(5,6),(6,4)}6.略四、算法设计题1.设有一组初始记录关键字序列(K1,K2,…,K n),要求设计一个算法能够在O(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于K i,右半部分的每个关键字均大于等于K i。
数据结构考试题库(含参考答案)

第1章绪论一、选择题1. 算法的计算量的大小称为计算的()。
【北京邮电大学2000 二、3 (20/8分)】A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于()【中科院计算所1998 二、1 (2分)】A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(1),它必须具备(2)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性【南京理工大学1999 一、1(2分)【武汉交通科技大学1996 一、1(4分)】4.一个算法应该是()。
【中山大学1998 二、1(2分)】A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A和C.5. 下面关于算法说法错误的是()【南京理工大学2000 一、1(1.5分)】A.算法最终必须由计算机程序实现B. 为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是()【南京理工大学2000 一、2 (1.5分)】(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为()两大类。
【武汉交通科技大学1996 一、4(2分)】A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是()。
【北方交通大学2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D. 栈9.以下数据结构中,哪一个是线性结构()?【北方交通大学2001 一、1(2分)】A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串10.以下那一个术语与数据的存储结构无关?()【北方交通大学2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D. 双向链表11.在下面的程序段中,对x的赋值语句的频度为()【北京工商大学2001 一、10(3分)】FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A.O(2n) B.O(n) C.O(n2) D.O (log2n)12.程序段FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中n为正整数,则最后一行的语句频度在最坏情况下是()A. O(n)B. O(nlogn)C. O(n3)D. O(n2) 【南京理工大学1998一、1(2分)】13.以下哪个数据结构不是多型数据类型()【中山大学1999 一、3(1分)】A.栈B.广义表C.有向图D.字符串14.以下数据结构中,()是非线性数据结构【中山大学1999 一、4】A.树B.字符串C.队D.栈15. 下列数据中,()是非线性数据结构。
《 数据结构B卷 》期末考试试卷附答案

《数据结构B卷》期末考试试卷附答案一、名词解释(每题2分,共10分)1. 数据类型2. 线性表3. 队列4. 串5. 图二、判断正误(正确打√,错误划×,每题1分,共10分)1.算法必须有输入参数。
( )2.链表能够动态分配结点空间。
( )3.栈是一种先进先出的线性表。
( )4.二维数组能够实现随机存取。
( )5.在二叉树的第i层上至多有2i-1个结点(i≥1)。
( )6.在有向图中,<v1,v2>与<v2,v1>是两条不同的边。
( )7.邻接表只能用于有向图的存储。
()8.有向图不能进行广度优先遍历( )9.平均查找长度ASL可作为衡量一个查找算法效率高低的标准。
( )10.所有的内部排序算法都是稳定的。
( )三、填空(每空2分,共10分)1.线性表、栈和队列都是( )结构。
2.栈是一种特殊的线性表,允许插入和删除运算的一端称为()。
3.队列的出队操作总是在( )进行。
4.按存储结构不同,串可分为( )。
5.深度为k 的完全二叉树至少有( )个结点。
四、选择题(单选或多选)(每题2分,共30分)1.算法原则上都是能够由机器或人完成的。
整个算法好像是一个解决问题的“工作序列”,其中的每一步都是我们力所能及的一个动作。
这是算法的( )。
A. 正确性B. 有穷性C. 确定性D. 可行性2.设一棵二叉树中,度为2的结点数为9,则该二叉树的叶结点的数目为( )。
A.10 B. 11 C. 12 D. 不确定3.某二叉树结点的先根序列为E、A、C、B、D、G、F,对中根遍历的序列为A、B、C、D、E、F、G。
该二叉树结点的后根遍历的序列为( )A. [B 、D 、C 、A 、F 、G 、E]B. [B 、D 、C 、F 、A 、G 、E]C. [E 、G 、F 、A 、C 、D 、B]D. [E 、G 、A 、C 、D 、F 、B]4.关于队列的说法正确的是()A. 先进先出B. 属于非线性结构C. 只能采用顺序存储D.属于散列结构5.用单链表表示的链式队列的队尾是在链表的( )位置A. 表尾B. 表头C. 表中D. 任意6.树的非叶子结点是()。
最新北京理工大学级数据结构b试题(a卷)-答案

一、选择题1、从逻辑结构上可以把数据结构分为【 C 】。
A、动态结构和静态结构B、紧凑结构和非紧凑结构C、线性结构和非线性结构D、内部结构和外部结构2、在一个长度为n的顺序存储的线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移【 B 】个元素。
A、n-iB、n-i+1C、n-i-1D、i3、链表结构不具有下列【 B 】特点。
A、插入和删除无需移动元素B、可随机访问链表中的任意元素C、无需实现分配存储空间D、所需空间与结点个数成正比。
4、在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行【C】。
A、s->next = p->next; p->next = s;B、p->next = s->next; s->next = p;C、q->next = s; s->next = p;D、p->next = s; s->next = q;5、一个栈的入栈序列是1,2,3,4,5,则栈不可能输出的序列是【 C 】。
A、54321B、45321C、43512D、123456、判断一个队列Q(元素最多为M个)为空的条件是【 C 】。
A、Q->rear – Q->front = MB、Q->rear – Q->front -1 ==MC、Q->rear == Q->frontD、Q->rear + 1 == Q->front7、在一个链队列中,假设f和r分别指向队首和队尾,则插入s所指结点的运算是【 A 】。
A、r->next = s; r=s;B、f->next = s; f=s;C、s->next = r; r=s;D、s->next = f; f=s;8、深度为5的二叉树至多有【 A 】个结点。
A、31B、32C、16D、109、在一非空二叉树的中序遍历序列中,根结点的右边【 A 】。
北京理工大学数据结构作业(全)

北京理工大学数据结构作业(全)北理工数据结构作业第二章作业1、在什么情况下用顺序表比链表好?(题集2.3)需要对线性表进行随机存取时,顺序表比链表好。
2、已知L是带表头结点的非空单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。
(题集2.7)a.删除P结点的直接后继结点的语句序列是11 3 14。
b.删除P结点的直接前驱结点的语句序列是10 12 8 3 14。
c.删除P结点的语句序列是10 12 7 3 14。
d.删除首元结点的语句序列是12 11 3 14。
e.删除尾元结点的语句序列是12 11 3 14。
(1)p = p->next;(2)p->next = p;(3)p->next = p->next->next;(4)p = p->next->next;(5)while ( p!=NULL ) p=p->next;(6)while ( q->next!=NULL ) { p=q; q=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);3、算法设计。
设顺序表va中的数据元素递增有序,请设计一算法,将x插入到顺序表的适当位置,以保持该表的有序性。
(题集2.11)typedef struct{ElemType *elem;int length;int listsize;}Sqlist;Status ListInsert_Sq(Sqlist &va , ElemType x){if(va.length==va.listsize) return ERROR;for(i=va.length-1;i>=0&&xva.elem[i+1]=x;va.length++;return OK;}4、算法设计。
- 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的取值区分是对两个栈中的哪一个栈进行入栈和出栈操作。