北邮数据结构期末试题与答案
数据结构期末考试题及答案
数据结构期末考试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,算法的时间复杂度是指()。
A. 执行算法所需要的计算工作量B. 执行算法所需要的存储空间C. 执行算法所需要的时间D. 执行算法所需要的内存大小答案:A2. 线性表的顺序存储结构和链式存储结构相比,其优点是()。
A. 插入和删除操作快B. 存储密度高C. 存储空间可以动态分配D. 存储空间利用率高答案:B3. 栈的基本运算中,不包括()。
A. 入栈B. 出栈C. 取栈顶元素D. 排序答案:D4. 在二叉树的遍历中,先序遍历的顺序是()。
A. 先根后子B. 先子后根C. 先左后右D. 先右后左答案:A5. 哈希表解决冲突的方法不包括()。
A. 分离链接法B. 线性探测法C. 链地址法D. 二分查找法答案:D6. 一个图的邻接矩阵表示法中,若第i行第j列的元素为1,则表示()。
A. 顶点i和顶点j之间有一条边B. 顶点i和顶点j之间没有边C. 顶点i和顶点j之间有n条边D. 顶点i和顶点j之间有m条边答案:A7. 在查找算法中,二分查找法适用于()。
A. 线性表B. 哈希表C. 树形结构D. 图结构答案:A8. 快速排序算法的时间复杂度在最坏情况下是()。
A. O(n)B. O(nlogn)C. O(n^2)D. O(2^n)答案:C9. 一个有n个顶点的无向图,其边数最多为()。
A. nB. n(n-1)/2C. n(n+1)/2D. 2n答案:B10. 以下哪个不是排序算法()。
A. 冒泡排序B. 选择排序C. 插入排序D. 归并排序答案:D二、填空题(每题2分,共20分)1. 在数据结构中,一个算法的空间复杂度是指算法执行过程中所需要的___________。
答案:存储空间2. 线性表的链式存储结构中,每个节点包含___________和___________。
答案:数据元素,指针3. 栈的特点是___________,___________。
数据结构期末考试及答案
一、单选题1、逻辑上通常可以将数据结构分为( )A.初等结构和组合结构B.顺序结构和链式结构C.线性结构和非线性结构D.动态结构和静态结构正确答案:C2、如果在数据结构中每个数据元素只可能有一个直接前驱,但可以有多个直接后继,则该结构是()。
A.栈B. 队列C.图D.树正确答案:D3、在长度为n的顺序表的第i个位置上插入一个元素(1<=i<=n+1),元素的移动次数为:()A.n-iB.i-1C.n-i+1D.i正确答案:C4、在非空线性链表中由p所指结点的后面插入一个由q所指的结点,应依次执行()A.q->next=p;p->next=q;B.p->next=q;q->next=p;C.q->next=p->next;p->next=q;D.q->next=p->next;p=q;正确答案:C5、已知栈的最大容量为4。
若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为()A.2,3,5,6,1,4B.1,4,6,5,2,3C.5,4,3,2,1,6D.3,2,5,4,1,6正确答案:D6、设栈S和队列Q初始均为空,若6个元素入栈的顺序为1、2、3、4、5、6,一个元素出栈以后立即入队列Q,若6个元素出队的顺序为2、4、3、6、5、1,则栈S的容量至少为()A.3B.5C.4D.2正确答案:A7、在计算机内实现递归算法时所需的辅助数据结构是()A.队列B.栈C.图D.树正确答案:B8、循环队列存储在数组A[0..m-1],则出队时的操作为()A.front=(front mod m)+1B.ront=(front+1)mod mC.front=front+1D.front=(front+1)mod (m-1)正确答案:B9、若以S和X分别表示进栈和退栈操作,则对初始状态为空的栈可以进行的栈操作系列合法的是()A.SXXSXSSXB.SSSXXSXXC.SXSSXXXXD.SXSXXSSX正确答案:B10、在具有m个单元的循环队列中,队头指针为front,队尾指针为rear,则队满的条件是()A.(front+1)%m==rearB.(rear+1)%m==frontC.front==rearD.rear+1==front正确答案:B11、在表长为n的顺序表上做插入运算,平均要移动的结点数为()A.n/4B.nC.n/3D.n/2正确答案:D12、元素的进栈次序为A,B,C,D,E,则退栈中不可能的序列是()A.E,D,C,B,AB.A,B,C,D,EC.E,A,B,C,DD.B,C,D,E,A正确答案:C13、下述二叉树中,()满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序。
《数据结构》期末考试试卷试题及答案
《数据结构》期末考试试卷试题及答案第一部分:选择题(每题2分,共20分)1. 下面哪个数据结构是线性结构?A. 树B. 图C. 队列D. 网络流2. 下面哪个数据结构用于实现广度优先搜索算法?A. 栈B. 队列C. 散列表D. 堆3. 下面哪个数据结构用于实现深度优先搜索算法?A. 栈B. 队列C. 散列表D. 堆4. 下面哪个数据结构用于实现快速排序算法?A. 栈B. 队列C. 散列表D. 堆5. 下面哪个数据结构用于实现优先队列?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. 下面哪个数据结构用于实现并查集算法?A. 栈B. 队列C. 散列表D. 堆第二部分:填空题(每题2分,共20分)1. 链表是一种______数据结构。
2. 二叉树的节点最多有______个子节点。
3. 堆是一种特殊的______。
4. 散列表的查找效率取决于______。
5. 图的遍历算法包括______和______。
6. 快速排序算法的平均时间复杂度为______。
7. 哈希表中的冲突解决方法有______和______。
8. 最小树算法包括______和______。
9. 最短路径算法包括______和______。
10. 并查集算法用于解决______问题。
第三部分:简答题(每题10分,共50分)1. 请简述栈和队列的区别。
2. 请简述二叉搜索树的特点。
3. 请简述哈希表的原理。
4. 请简述图的深度优先搜索算法。
5. 请简述最小树算法的原理。
第四部分:编程题(每题20分,共50分)1. 编写一个函数,实现链表的插入操作。
北邮 计算机学院 数据结构 期末试题
O S TEST1.Fill in the blanks with the proper words.( 10 cents)1. Operating system is a program that acts as an intermediary between _____ and______.2.To prevent user programs from interfering with the proper operation of the system,the hardware has two modes: _________, __________.3.___________ is the separation of user ______ from physical memory. User wouldbe able to write programs for an extremely large __________ space, simplifying the programming task.4.The file system consists of two distinct parts: _______, each storing related dataand _______, which organizes and provides information about all the files in the system.5.System call provide the interface between _____ and _____ .6.________ provide an object-oriented way of implementing file systems, and itallows the same system call interface (the API) to be used for different types of file systems.7. A process is a program in execution. A process needs certain resources, including____, ______, files, and ______ to accomplish its task.8.Disk-scheduling algorithms can improve _________, _________, and ________.9.The primary distinction between long-term scheduler and short-term scheduler is_______.10.The device drivers present a uniform device-access interface to ______ , much assystem calls provide a standard interface between the application and the operating system.2. Choose the best answer, and each blank has one answer. (23 cents) 1. Operating system is a kind of(1) , (2) is not the main problem it handles.(1). A. Application software;B. System software;C. Common software;D. Software package;(2). A. managing the bar-machine;B. designing, providing the interface between user program and hardwaresystem;C. managing the information resource of the computer;D. the compiling of the high-level program-designing language.2. The utilization of the memory can be improved by __(1)___. Its basic task is__(2)_ for each program; and each program can run safely and separately, main by __(3)____.(1), (3): A. memory-allocating B. memory-protectingC. address-mappingD. swapping(2): A. the diversion from logical address to physical addressB. the swapping between memory and backing store;C. the address space of the user’s applications can be larger than the memoryspace;D. allocation the memory.3. The response time of time-sharing system depends on_(1)___; while the response time of the real-time system depends on __(2)__.A. the size of time quantum;B. the number of users;C. the speed of the computer;D. the waiting time the users can accept;E. the time delay the object controlled can accept;F. the real-time scheduling.4. In a single-processor system, there are 5 processes, then _(1)___ processes can be in the ready queue, __(2)__ processes can be in the waiting queue.A. 5 ;B. 4;C. 3;D. 2;E. 1;F. 0;5. In the producer-consumer problem, the mutex-semaphore mutex, the resource-semaphore full and empty. Their initial value are 1, _(1)____ and __(2)__ respectively.A. 0;B. 1;C. 1;D.-1;E.-n;F. +n.6. The maximum capacity of the virtual storage of a computer system depends on __(1)____, and the pratical capacity depends on __(2)____.A. the length of the computer word;B. the memory capacity;C. the capacity of the hard disk;D. the capacity of the memory and disk;E. the address structure of the computer;7. The basic intention of the file system is _(1)__, and it can be realized by __(2)_, and the most important intention of the file system is _(3)__.A. accessing files by names;B. directory-managing;C. file-protecting;D. boost the speed of the file-accessing;E. improve the utilization of storage;8. In the algorithms below, __(1)____ can only be implemented by the nonpreemptive method, __(2)__ can only be implemented by preemptive method, while the rest can be implemented by both.A. Priority scheduling;B. Round-Robin scheduling;C. FCFS scheduling;D. Shortest-Job-First scheduling.9. Suppose there are 10 processes in the ready queue, with round-robin scheduling, the time quantum is 300 ms, and the CPU-switch costs 10 ms, then the percent of the system spending is about__(1)___; if the number of the processes in the ready queue adds up to 20, the percent will __(2)___.(1): A. 1%; B. 3%; C.5%; D. 10%; E. 30%;(2): A. increase; B. decrease; C. not change.10. When looking up a file by hash-table, you find the according directory item isempty , and this represents __(1)_; if the file name in that directory matches the file name you are looking up, it represents__(2)__; if it doesn’t match, it represents _(3)__.A. the file name has been modified;B. there is no file name you are searching in the system;C. new file just created;D. it is a collision;E. you has the accessing right;F. you find the right file;3. Please answer the questions given below.1.What are the differences between a process and a thread? Please draw the diagramof the process states。
北邮数据结构期末考试试题
5.(6 分)对于如下稀疏矩阵,请写出对应的三元组顺序表,若采用顺序取,直接存的算法 进行转置运算,引入辅助数组 number[]和 position[],分别表示矩阵各列的非零元素个数和 矩阵中各列第一个非零元素在转置矩阵中的位置,请写出数组中的各元素值。(所有数组起
试卷二
一. 填空题:(共 21 分,每空 1 分)
1. 数据结构通常由三要素组成:___________、__________和____________;其中数 据 结 构 研 究 的 逻 辑 结 构 分 别 有 集 合 、 _____________ 、 _____________ 和 ____________。
2.(4 分)假设二叉树由二叉链表结构存储,完成下面算法,由二叉树 b 复制成另一个二叉
树 t。
template<class T>
void BiTree::Copy(BiNode<T> *&t, BiNode<T> *b) {
if (_________)
t=NULL;
else{
t= new BiNode<T> ________________; ________________; ________________;
]。
A. 堆排序 B. 快速排序
C. 希尔排序D. 冒泡排序
三.简答题(26 分)
1.(7 分) 已知二叉树的前序遍历序列是 AEFBGCDHIKJ,中序遍历序列是 EFAGBCHKIJD。 要求:
(1)画出此二叉树(3 分) (2)写出该树后序遍历序列(2 分) (3)画出该二叉树对应的森林(2 分)。
21,23,15,27,47,35,20,59,72
2022年北京邮电大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年北京邮电大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、无向图G=(V,E),其中:V={a,b,c,d,e,f},E={(a,b),(a, e),(a,c),(b,e),(c,f),(f,d),(e,d)},对该图进行深度优先遍历,得到的顶点序列正确的是()。
A.a,b,e,c,d,fB.a,c,f,e,b,dC.a,e,b,c,f, dD.a,e,d,f,c,b2、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储, a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。
A.13B.33C.18D.403、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。
A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表4、最大容量为n的循环队列,队尾指针是rear,队头:front,则队空的条件是()。
A.(rear+1)MOD n=frontB.rear=frontC.rear+1=frontD.(rear-1)MOD n=front5、下列关于AOE网的叙述中,不正确的是()。
A.关键活动不按期完成就会影响整个工程的完成时间B.任何一个关键活动提前完成,那么整个工程将会提前完成C.所有的关键活动提前完成,那么整个工程将会提前完成D.某些关键活动若提前完成,那么整个工程将会提前完成6、下列关于无向连通图特性的叙述中,正确的是()。
Ⅰ.所有的顶点的度之和为偶数Ⅱ.边数大于顶点个数减1 Ⅲ.至少有一个顶点的度为1A.只有Ⅰ B.只有Ⅱ C.Ⅰ和Ⅱ D.Ⅰ和Ⅲ7、若一棵二叉树的前序遍历序列为a,e,b,d,c,后序遍历序列为b, c,d,e,a,则根结点的孩子结点()。
A.只有e B.有e、b C.有e、c D.无法确定8、一棵哈夫曼树共有215个结点,对其进行哈夫曼编码,共能得到()个不同的码字。
数据结构期末考试试题(含答案)
数据结构期末考试试题(含答案)题目一请写出快速排序算法的递归实现。
解答一public class QuickSort {public void sort(int[] arr, int low, int high) {if (low < high) {int partitionIndex = partition(arr, low, high);sort(arr, low, partitionIndex - 1);sort(arr, partitionIndex + 1, high);}}private int partition(int[] arr, int low, int high) {int pivot = arr[high];int i = low - 1;for (int j = low; j < high; j++) {if (arr[j] <= pivot) {i++;swap(arr, i, j);}}swap(arr, i + 1, high);return i + 1;}private void swap(int[] arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}题目二请解释什么是二叉搜索树,并给出一个例子。
解答二二叉搜索树是一种有序的二叉树,其中每个节点的值大于其左子树的所有节点的值,小于其右子树的所有节点的值。
下面是一个二叉搜索树的例子:6/ \3 9/ \ \1 4 12题目三请写出深度优先搜索(DFS)算法的递归实现。
解答三import java.util.*;public class DFS {private int numVertices;private List<List<Integer>> adjList;public DFS(int numVertices) {this.numVertices = numVertices;adjList = new ArrayList<>();for (int i = 0; i < numVertices; i++) {adjList.add(new ArrayList<>());}}public void addEdge(int src, int dest) { adjList.get(src).add(dest);}public void DFSUtil(int start, boolean[] visited) { visited[start] = true;System.out.print(start + " ");List<Integer> neighbors = adjList.get(start);for (int neighbor : neighbors) {if (!visited[neighbor]) {DFSUtil(neighbor, visited);}}}public void DFS(int start) {boolean[] visited = new boolean[numVertices];DFSUtil(start, visited);}}以上是数据结构期末考试试题及其答案。
数据结构期末试题及答案
《数据结构》期末考试试卷一、选择题(单选题,每小题3分,共33分)1.已知某二叉树的中序、层序序列分别为DBAFCE、FDEBCA,则该二叉树的后序序列为 B 。
A.BCDEAF B.ABDCEF C.DBACEF D.DABECF 2.在11个元素的有序表A[1…11]中进行折半查找(⎣⎦2/)low+),查找元素(highA[11]时,被比较的元素的下标依次是 B 。
A.6,8,10,11 B.6,9,10,11 C.6,7,9,11 D.6,8,9,113.由元素序列(27,16,75,38,51)构造平衡二叉树,则首次出现的最小不平衡子树的根(即离插入结点最近且平衡因子的绝对值为2的结点)为 D 。
A.27 B.38 C.51 D.754.利用逐点插入法建立序列(50,72,43,85,75,20,35,45,65,30)对应的二叉排序树以后,查找元素30要进行 B 次元素间的比较。
A.4 B.5 C.6 D.75.循环链表的主要优点是 D 。
A.不再需要头指针了B.已知某个结点的位置后,很容易找到它的直接前驱结点C.在进行删除后,能保证链表不断开D.从表中任一结点出发都能遍历整个链表6.已知一个线性表(38,25,74,63,52,48),假定采用散列函数h(key)=key%7计算散列地址,并散列存储在散列表A[0…6]中,若采用线性探测方法解决冲突,则在该散列表上进行等概率查找时查找成功的平均查找长度为 C 。
A.1.5 B.1.7 C.2.0 D.2.37.由权值为9,2,5,7的四个叶子结点构造一棵哈夫曼树,该树的带权路径长度为C 。
A.23 B.37 C.44 D.468.在最好和最坏情况下的时间复杂度均为O(nlogn)且稳定的排序方法是 D 。
A.基数排序B.快速排序C.堆排序D.归并排序9.无向图G=(V,E),其中V={a,b,c,d,e,f},E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)}。
《数据结构》期末考试试题及答案
《数据结构》期末考试试题及答案一、选择题(每题2分,共20分)1. 下列哪一个不是线性结构的基本特征?A. 有且只有一个根结点B. 每个结点最多有一个前驱和一个后继C. 有且只有一个叶子结点D. 有序对中第一个元素是根结点答案:C2. 在单链表中,存储元素的数据域称为元素的哪个部分?A. 指针域B. 数据域C. 结点域D. 头结点答案:B3. 在顺序存储结构中,数据元素之间的逻辑关系由哪个因素决定?A. 数据元素的存储顺序B. 数据元素的存储位置C. 数据元素的类型D. 数据元素的大小答案:A4. 下列哪种排序算法的时间复杂度不是O(nlogn)?A. 快速排序B. 归并排序C. 堆排序D. 冒泡排序答案:D5. 在二叉树中,具有度为2的结点的个数是n0,度为0的结点个数是n2,则有()。
A. n0 = n2 - 1B. n0 = n2 + 1C. n0 = n2D. n0 = n2 + 2答案:B6. 在线索二叉树中,哪个结点被称为线索结点?A. 有左子树的结点B. 有右子树的结点C. 既没有左子树也没有右子树的结点D. 具有左右子树的结点答案:C7. 在双向链表中,查找结点的时间复杂度是()。
A. O(1)B. O(n)C. O(nlogn)D. O(n^2)答案:B8. 在栈的操作中,下列哪个操作是非法的?A. 先进先出B. 后进先出C. 可以插入任意元素D. 可以删除任意元素答案:D9. 在顺序表中进行插入操作时,平均移动次数为()。
A. 0B. n/2C. nD. n-1答案:C10. 在下列排序算法中,哪个算法是不稳定的?A. 冒泡排序B. 快速排序C. 插入排序D. 归并排序答案:B二、填空题(每题2分,共20分)1. 线性表的顺序存储结构称为顺序表,其基本特点是()。
答案:元素顺序存储2. 在单链表中,每个结点包括两个域:数据域和()。
答案:指针域3. 在二叉树中,度为0的结点称为(),度为2的结点称为()。
数据结构期末考试试卷及答案
数据结构期末考试试卷及答案一、选择题(每题2分,共20分)1. 下列哪一个不是线性结构的特点?A. 有且只有一个根结点B. 每个结点最多有一个前驱和一个后继C. 有多个根结点D. 有且只有一个叶子结点答案:C2. 在单链表中,头结点的作用是()A. 作为链表的起点B. 作为链表的终点C. 存储链表中的数据元素D. 作为链表中的第一个元素答案:A3. 在顺序表中,插入一个元素的时间复杂度是()A. O(1)B. O(n)C. O(logn)D. O(n^2)答案:B4. 下列哪种排序算法的平均时间复杂度最高?A. 冒泡排序B. 快速排序C. 直接插入排序D. 希尔排序答案:C5. 在二叉树中,具有3个结点的二叉树有()种不同的形态。
A. 2B. 3C. 4D. 5答案:C6. 下列哪种情况不适合使用哈希表?A. 查找速度快B. 数据量较大C. 数据量较小D. 数据元素关键字分布均匀答案:C7. 在图的遍历过程中,下列哪种遍历方法属于深度优先遍历?A. 广度优先遍历B. 深度优先遍历C. 混合遍历D. 随机遍历答案:B8. 下列哪种数据结构不适用于实现栈?A. 顺序表B. 链表C. 树D. 图答案:C9. 在双向链表中,删除一个元素的时间复杂度是()A. O(1)B. O(n)C. O(logn)D. O(n^2)答案:A10. 下列哪种情况不适合使用队列?A. 数据元素先进先出B. 数据元素后进先出C. 数据元素随机进出D. 数据元素按顺序进出答案:B二、填空题(每题2分,共20分)1. 线性表是具有______个数据元素的有限序列。
答案:n2. 在单链表中,每个结点包含两个域:数据域和______域。
答案:指针3. 在顺序表中,插入一个元素的时间复杂度是______。
答案:O(n)4. 快速排序的平均时间复杂度为______。
答案:O(nlogn)5. 哈希表中的冲突指的是______。
答案:不同的关键字对应同一存储位置6. 在图的遍历过程中,深度优先遍历算法使用的数据结构是______。
北京邮电大学数据结构期末考试试题
北京邮电大学数据结构期末考试试题(A卷)一.单项选择题(2分/题)1.一个栈的输入序列为12345,则下列序列中是栈的输出序列的是(A)。
A.23415B.54132C.31245D.142532.设循环队列中数组的下标范围是1~n,其头尾指针分别为f和r,则其元素个数为(D)。
A.r-fB.r-f+1C.(r-f) mod n +1D.(r-f+n) mod n3.二叉树在线索化后,仍不能有效求解的问题是(D)。
A.先序线索二叉树中求先序后继B. 中序线索二叉树中求中序后继 C.中序线索二叉树中求中序前驱 D. 后序线索二叉树中求后序后继4.求最短路径的FLOYD算法的时间复杂度为(D)。
A.O(n)B.O(n+e)C.O(n2)D.O(n3)5.一棵左右子树不空的二叉树在先序线索化后,其空指针域数为(B)。
A.0B.1C.2D.不确定6.数组A[1..5,1..6]的每个元素占5个单元,将其按行优先顺序存储在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为(A)。
A.1140B.1145C.1120D.11257.在下列排序算法中,在待排序的数据表已经为有序时,花费时间反而最多的是(A)。
A.快速排序B.希尔排序C.冒泡排序 D.堆排序8.对有18个元素的有序表做折半查找,则查找A[3]的比较序列的下标依次为(C)。
A.1-2-3B.9-5-2-3C.9-5-3D. 9-4-2-39.下列排序算法中,某一趟结束后未必能选出一个元素放在其最终位置上的是(D)。
A.堆排序B.冒泡排序C.快速排序 D.直接插入排序10.在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡点为A,并已知A的左孩子的平衡因子为-1,右孩子的平衡因子为0,则做(B)型调整以使其平衡。
A.LLB.LRC.RLD.RR二.判断题(1分/题)1.线性表的长度是线性表所占用的存储空间的大小。
F2.双循环链表中,任意一结点的后继指针均指向其逻辑后继。
北京邮电大学2009-2010学年第1学期数据结构
北京邮电大学2009-2010学年第1学期《数据结构》期末考试试题B卷一、填空题(每空2分,共20分)1、数据元素之间的关系在计算机中有顺序映射像和非顺序映射两种表示方法,由此得到顺序存储结构和______________结构两种不同的存储结构。
2、假设某算法中基本操作的执行额度3n+nlogn,则算法的时间复杂度为___________。
3、在无表头节点的单链表L的表头处插入S结点所应进行的操作是____________________。
4、设循环队列的容量为50,且队头指针和队尾指针分别为front和rear,若front=28,rear=10,则队列中现有________个元素。
5、已知二叉树中叶子结点的数目为50,仅有一个孩子的结点为20,则总结点数为________。
6、用冒泡排序法对a个数据进行排序,第一趟比较_________次。
7、已知下列字符串:a=’THIS’;f=’A SAMPLE’;c=’’(空格);s=Concat(a,Concat(SubString(f,2,7),Concat(c,SubString(a,3,2))));此时,StrLength(s)为_____________。
8、N+1个顶点的连通图至少有____________条边。
9、无向图中各顶点的度数之和为80,那么该图的边数为___________。
10、一棵深度为5的二叉树,最少有_____________结点。
二、判断题,在括号中画×或√(每小题1分,共10分)1、排序是队列的基本操作。
()2、二叉平衡树的中序遍历值是非递减的。
()3、线性表的逻辑顺序与存储顺序总是一致的()4、消除递归必须使用栈。
()5、串是一种特殊的线性表,其特殊性体现在数据元素可以是若干个字符。
()6、一般在哈夫曼树中,权值越大的叶子离根节点越近。
()7、已知二叉树的前序和后序遍历序列能唯一地确定这棵树。
()8、用邻接矩阵法存储一个图时,所占用的存储空间大小不仅与图中结点个数有关,而且与图的边数有关。
数据结构期末考试试题及答案
数据结构期末考试真题及答案期末样卷参考答案一.是非题〔每题1分共10分〕1. 线性表的链式存储结构优于顺序存储结构。
F2. 栈和队列也是线性表。
如果需要,可对它们中的任一元素进行操作。
F3.字符串是数据对象特定的线性表。
T4.在单链表P指针所指结点之后插入S结点的操作是:P->next= S ; S-> next = P->next; F5.一个无向图的连通重量是其极大的连通子图。
T 6.邻接表可以表示有向图,也可以表示无向图。
T 7.假设B是一棵树,B′是对应的二叉树。
则B的后根遍历相当于B′的中序遍历。
T8.通常,二叉树的第i层上有2i-1个结点。
F9.对于一棵m阶的B-树,树中每个结点至多有m 个关键字。
除根之外的全部非终端结点至少有ém/2ù个关键字。
F10.对于任何待排序序列来说,快速排序均快于起泡排序。
F二.选择题〔每题2分共28分〕1.在以下排序方法中,〔c 〕方法平均时间复杂度为0(nlogn),最坏情况下时间复杂度为0(n2);〔d 〕方法全部情况下时间复杂度均为0(nlogn)。
a. 插入排序b. 希尔排序c. 快速排序d. 堆排序2. 在有n个结点的二叉树的二叉链表表示中,空指针数为〔 b 〕。
a.不定b.n+1c.nd.n-13. 以下二叉树中,〔a 〕可用于完成符号不等长高效编码。
a.最优二叉树b.次优查找树c.二叉平衡树d.二叉排序树4. 以下查找方法中,〔a 〕适用于查找有序单链表。
a.顺序查找b.二分查找c.分块查找d.哈希查找5. 在顺序表查找中,为防止查找过程中每一步都检测整个表是否查找完毕,可采纳〔 a 〕方法。
a.设置监视哨b.链表存贮c.二分查找d.快速查找6. 在以下数据结构中,〔c 〕具有先进先出特性,〔b 〕具有先进后出特性。
a.线性表b.栈c.队列d.广义表7.具有m个结点的二叉排序树,其最大深度为〔f 〕,最小深度为〔 b 〕。
数据结构期末考试题及答案
数据结构期末考试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,线性结构的特点是()。
A. 元素之间存在一对一关系B. 元素之间存在一对多关系C. 元素之间存在多对多关系D. 元素之间存在一对一对关系答案:A2. 栈(Stack)是一种特殊的线性表,其特点是()。
A. 只能在一端进行插入和删除操作B. 只能在一端进行插入操作,另一端进行删除操作C. 两端都可以进行插入和删除操作D. 只能在一端进行删除操作答案:B3. 在二叉树中,若某结点的左子树非空,则其左子树中任一结点的值()。
A. 小于该结点的值B. 大于该结点的值C. 等于该结点的值D. 与该结点的值无关答案:A4. 哈希表的冲突解决方法中,开放定址法的基本思想是()。
A. 将发生冲突的元素插入到表的末尾B. 将发生冲突的元素插入到表的首部C. 将发生冲突的元素插入到表的任意位置D. 将发生冲突的元素插入到表的下一个空位答案:D5. 快速排序算法的时间复杂度在最坏情况下是()。
A. O(nlogn)B. O(n^2)C. O(n)D. O(1)答案:B6. 归并排序算法的时间复杂度是()。
A. O(nlogn)B. O(n^2)C. O(n)D. O(1)答案:A7. 在图的遍历中,深度优先搜索(DFS)使用的是()。
A. 队列B. 栈C. 链表D. 数组答案:B8. 广度优先搜索(BFS)使用的是()。
A. 队列B. 栈C. 链表D. 数组答案:A9. 在图的表示方法中,邻接矩阵适用于表示()。
A. 稀疏图B. 稠密图C. 无向图D. 有向图答案:B10. 最小生成树的Kruskal算法中,边的选取是基于()。
A. 边的权重B. 边的编号C. 边的长度D. 边的类型答案:A二、填空题(每题2分,共20分)1. 在数据结构中,一个算法的空间复杂度是指算法执行过程中需要的___________。
答案:存储空间的大小2. 顺序表的存储结构是使用___________连续的存储单元依次存储数据元素。
数据结构课程期末考试及答案
一、单项选择题(10 小题,每小题 1 分,共 10 分)1. 在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印缓冲区,该缓冲区应该是一个(B )结构。
B .队列A .栈C .数组D .线性表)。
D .123. 设输入序列为 1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为(2. 设某棵二叉树中有 2000 个结点,则该二叉树的最小高度为(A .9B .10C .11CB)。
A .5,3,4,6,1,2C .3,1,2,5,4,6B .3,2,5,6,4,1D .1,5,4,6,2,34. 设指针变量 p 指向单链表中结点 A ,若删除单链表中结点 A ,则需要修改指针的操作序列为()。
AA. q=p->next ;p->data=q->data ;p->next=q->next ;free(q);B. q=p->next ;q->data=p->data ;p->next=q->next ;free(q);C. q=p->next ;p->next=q->next ;free(q);D. q=p->next ;p->data=q->data ;free(q);5. 对于 n 个关键字序列{k ,k ,…,k },当且仅当满足关系 k ≤k 且 k ≤k 2 i+1(2i ≤n, 2i+1≤n )12n i 2i i 称其为小根堆,反之,当且仅当满足关系 k ≥k 且 k ≥k 2i+1(2i≤n, 2i+1≤n )则为大根堆,以下i 2i i 序列中(C)不符合堆的定义。
A .(4,10,15,72,39,23,18)C .(4,10,18,72,39,23,15)B .(58,27,36,12,8,23,9)D .(58,36,27,12,8,23,9)6. 程序段for(i=n-1;i>=1;i--)for(j=1;j<=i;j++)if(A[j]>A[j+1])A[j]与 A[j+1]对换;其中 n 为正整数,则最后一行的语句频度在最坏情况下是( B )。
大学数据结构期末考试试题(有答案)
“数据结构”期末考试试题一、单选题(每小题2分,共12分)1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一>next=HLB. p一>next=HL;HL=p3C. p一>next=Hl;p=HL;D. p一〉next=HL一>next;HL一〉next=p;2.n个顶点的强连通图中至少含有( ).A。
n—l条有向边 B.n条有向边C.n(n—1)/2条有向边 D。
n(n一1)条有向边3。
从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A。
O(1) B。
O(n)C.O(1Ogzn)D.O(n2)4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()。
A.24 B.48C. 72 D. 535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
A.整形B.引用型C.指针型D.常值引用型·6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )。
A.O(n) B.O(1)C.O(n2) D.O(10g2n)二、填空题(每空1分,共28分)1.数据的存储结构被分为——、——、-—和—-四种。
2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为——域和——域。
3.-—中缀表达式 3十x*(2。
4/5—6)所对应的后缀表达式为———-。
4.在一棵高度为h的3叉树中,最多含有——结点。
5.假定一棵二叉树的结点数为18,则它的最小深度为—-,最大深度为-—·6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定——该结点的值,右子树上所有结点的值一定-—该结点的值。
7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层—-调整,直到被调整到——位置为止.8.表示图的三种存储结构为——、——和-——.9.对用邻接矩阵表示的具有n个顶点和e条边的图进行任一种遍历时,其时间复杂度为-—,对用邻接表表示的图进行任一种遍历时,其时间复杂度为—-。
《数据结构》期末复习题及参考答案
《数据结构》复习资料一单选题 (共48题,总分值0分 )1. 设用链表作为栈的存储结构,则退栈操作(0 分)A. 必须判别栈是否为满B. 必须判别栈是否为空C. 判别栈元素的类型D. 对栈不作任何判别2. 下面关于m阶B树说法正确的是()。
①每个结点至少有两棵非空子树;②树中每个结点至多有m-1个关键字;③所有叶子在同一层上;④当插入一个数据项引起B树结点分裂后,树长高一层。
(0 分)A. ①②③B. ②③C. ②③④D. ③3. 下列关于文件的说法,错误的是()。
(0 分)A. 选择文件的组织方式时应考虑外存的性质和容量B. 不定长文件指的是总长度可变的文件C. 对文件的操作主要是维护和检索D. 文件的存储结构指的是文件在外存上的组织方式4. 设无向图的顶点个数为n,则该图最多有()条边。
(0 分)A. n-1B. n(n-1)/2C. n(n+1)/2D. n25. 设广义表L=((a,()),b,(c,d,e)),则Head(Tail(Tail(L)))的值为()。
(0 分)A. bB. cC. (c)D. (c,d,e)6. 设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
(0 分)A. 688B. 678C. 692D. 6967. 设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为(0 分)A. nB. eC. 2nD. 2e8. 广义表(a,(b,(),c))的深度为()。
(0 分)A. 1B. 2C. 3D. 49. 设有向图G中有五个顶点,各顶点的度分别为3、2、2、1、2,则G中弧数为()。
(0 分)A. 4条B. 5条C. 6条D. 无法确定10. 若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为(0 分)A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,311. 具有n个顶点的有向强连通图最少有()条弧。
北邮数据结构期末试题与答案
试卷四一. 填空题(22 分,每空 1 分)1.设待处理的问题规模为n,若一个算法的时间复杂度为一个常数,则表示为(),若一个算法的执行次数为n*log25n,则时间复杂度表示为()。
2.数据的逻辑结构主要分为()、()、()和()四种。
3.一棵度为3 的树,若度为1 的结点有5 个,度为2 的结点有8 个,度为3 的结点有12 个,则该树有()叶子结点。
4.设一个空栈,栈顶指针为1000H,若有输入序列为1、2、3、4、5,经过push、push、pop、push、pop、push、push 后,输出序列是(),若输入的每个数占4 个字节的空间,则栈顶指针为()H。
5.按照()遍历二叉排序树得到的序列是一个有序序列。
6.若哈夫曼树一共有n 个叶子结点,则该哈夫曼树总结点数为()。
7.设C++中存储三维数组A mnp,则第一个元素为a000,若按行优先存储,则a ijk 前面共有()个元素;若按列优先存储,则a ijk 前面共有()个元素。
8.设8 行8 列的二维数组起始元素为A[0][0],按行优先存储到起始元素下标为0 的一维数组B 中,则元素A[5][3]在B 数组中的位置为B[()]。
9.图的深度优先遍历类似于树的()遍历,它所用的数据结构是(),图的广度优先遍历类似于树的()遍历,使用的数据结构是()。
10.设无向图G 中顶点数为n,则图G 至少有()边,至多有()边;若G 为有向图,则至少有()弧,至多有()弧。
二. 单选题(23 分,每空 1 分)1.顺序表是一种采用()存取方式的()存储结构,链表是一种采用()存取方式的()存储结构。
A.顺序B. 随机C.链式D. 有序2.STL 中最常用的用于处理顺序表问题的容器是(),STL 中用于处理链表问题的容器是()。
A. vectorB. mapC. listD.stack3.长度为20 的有序序列,采用折半查找,共有()个元素的查找长度为3。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
试卷四一. 填空题(22 分,每空 1 分)1.设待处理的问题规模为n,若一个算法的时间复杂度为一个常数,则表示为(),若一个算法的执行次数为n*log25n,则时间复杂度表示为()。
2.数据的逻辑结构主要分为()、()、()和()四种。
3.一棵度为3 的树,若度为1 的结点有5 个,度为2 的结点有8 个,度为3 的结点有12 个,则该树有()叶子结点。
4.设一个空栈,栈顶指针为1000H,若有输入序列为1、2、3、4、5,经过push、push、pop、push、pop、push、push 后,输出序列是(),若输入的每个数占4 个字节的空间,则栈顶指针为()H。
5.按照()遍历二叉排序树得到的序列是一个有序序列。
6.若哈夫曼树一共有n 个叶子结点,则该哈夫曼树总结点数为()。
7.设C++中存储三维数组A mnp,则第一个元素为a000,若按行优先存储,则a ijk 前面共有()个元素;若按列优先存储,则a ijk 前面共有()个元素。
8.设8 行8 列的二维数组起始元素为A[0][0],按行优先存储到起始元素下标为0 的一维数组B 中,则元素A[5][3]在B 数组中的位置为B[()]。
9.图的深度优先遍历类似于树的()遍历,它所用的数据结构是(),图的广度优先遍历类似于树的()遍历,使用的数据结构是()。
10.设无向图G 中顶点数为n,则图G 至少有()边,至多有()边;若G 为有向图,则至少有()弧,至多有()弧。
二. 单选题(23 分,每空 1 分)1.顺序表是一种采用()存取方式的()存储结构,链表是一种采用()存取方式的()存储结构。
A.顺序B. 随机C.链式D. 有序2.STL 中最常用的用于处理顺序表问题的容器是(),STL 中用于处理链表问题的容器是()。
A. vectorB. mapC. listD.stack3.长度为20 的有序序列,采用折半查找,共有()个元素的查找长度为3。
A. 2B. 3C. 4D. 54.在双向链表p 所指结点之后插入s 所指结点的操作是()。
A.p→right=s; s→left=p; p→right→left=s; s→right=p→right;B.p→right=s; p→right→left=s; s→left=p; s→right=p→right;C.s→left=p; s→right=p→right; p→right=s; p→right→left=s;D.s→left=p; s→right=p→right; p→right→left=s; p→right=s;5.如果结点A 有3 个兄弟,B 是A 的双亲,则结点B 的度是()。
A. 1B. 2C. 3D. 46.将一个递归算法改为对应的非递归算法时,通常需要使用()。
A.数组B. 栈C. 队列D. 二叉树7.在一棵度为3 的树中,度为3 的结点的个数为12,度为2 的结点个数为11,则度为0 的结点个数为()。
A. 24B. 35C. 36D. 278.将一棵二叉树h 转换为与之对应的森林t,则h 的中序遍历是t 的()。
A.前序遍历B.中序遍历C.后序遍历 D. 层序遍历9.以下说法不正确的是()。
A快速排序、归并排序都是一种不稳定的排序方法B直接插入排序和折半插入排序移动元素的次数相同C简单选择排序移动元素的次数最少D根据排序需要的平均时间,快速排序是目前最好的一种内部排序方法10.设m、n 为一棵二叉树上的两个结点,在中序遍历时,n 在m 前的条件是()。
A. n 在m 右方B. n 是m 祖先C. n 在m 左方D.n 是m 子孙11.具有n 个顶点的有向图中,若所有顶点的出度之和为S,则所有顶点的入度之和为()。
A. SB. S-1C. S+1D. 2S12 .某二叉树的前序遍历结点访问顺序是ABDEFCGH, 中序遍历的结点访问顺序是DBFEAGHC, 则其后序遍历的结点访问顺序是()。
A. DFEBHCGAB. DFEBHGCAC. DEFBHGCAD. DFEHBGCA13.排序趟数与序列的原始状态有关的排序方法是()。
A. 直接插入排序B. 简单选择排序C. 快速排序D. 归并排序14.折半查找有序表(3,4,5,10,13,14,20,30),若查找元素3,则被比较的元素依次为()。
A.10,20,30B.13,3C.10,14,30D.10, 4, 315.设将序列(Q,H,C,Y,P,A,M,S,R,D,F,X)按升序排列,则()是一趟起泡排序的结果,()是增量为4 的希尔排序的结果,()是二路归并排序的结果,()是以第一个元素为轴值的快速排序结果,()是对排序初始建堆的结果。
A. (F,H,C,D,P,A,M,Q,R,S,Y,X)B. (P,A,C,S,Q,D,F,X,R,H,M,Y)C. (A,D,C,R,F,Q,M,S,Y,P,H,X)D. (H,C,Q,P,A,M,S,R,D,F,X,Y)E. (H,Q,C,Y,A,P,M,S,D,RF,X)三. 综合题(32 分)1、(3 分)一棵二叉排序树的结构如图所示,结点值为1~8,请标出各结点的值。
2、(6 分)已知序列:{ 12, 13, 11, 18, 60, 15, 7, 18, 25, 100}。
(1)使用最少的调整次数将其调整成为大根堆,请写出调整后的序列(3 分)。
(2)写出按大根堆进行堆排序的第一趟排序序列(3 分)。
3、(6 分)用散列函数H(x) = x % 11 计算散列地址,存储序列{42,14,23,1,32,20,10,54},如果发生冲突,使用链地址法处理冲突。
(1)画出存储结果。
(4 分)12345662 13456 5 36265 17 8 910 (2)若等概率查找序列中的每个元素,请计算按上述方式查找成功的平均查找长度。
(2 分)4.(10 分)假设用于通信的电文仅由 7 个字符(A ,B ,C ,D ,E ,F ,G )组成,字符在电文中出现的概率分别为(0.05, 0.09, 0.02, 0.12, 0.47, 0.10, 0.15) (1)画出哈夫曼树(4 分)(2)计算平均编码长度(即带权路径长度)。
(2 分)(3)最长的编码为几位,对应哪些字符?最短的编码为几位,对应哪些字符?(4 分)5、(7 分)对于右侧带权图 G ,完成以下问题。
(1)分别写出从 1 号结点开始深度和广度优先遍历结果(按序号由小到大)。
深度遍历(2 分): 广度遍历(2 分):(2)画出该图的最小生成树。
(3 分)四. 程序题(23 分)1.(4 分)阅读下面的程序,并回答问题。
void func(int n) //n 为正整数{if (n / 2 > 0)func (n/2); cout<< n%2;}(1)该程序完成的功能是;(2)执行该函数,若输入参数为 77,则输出为。
2.(7 分)下面代码实现折半插入排序算法,请填写其中的空缺语句。
(每空 1 分)。
void BiInsertSort ( int r[], int n ) {int i, low, high, m;for ( i=2; i<=n; ++i ){; //将r[i]暂存到r[0]low = 1;high = i-1;while ( ){m =(low+high)/2; // 折半if (r[0] < r[m]) ; //插入点在低半区else ; //插入点在高半区}for ( j= ; j>= ; --j ) //记录后移r[j]=r[j-1];; // 插入}}3.(12 分)已知数组(k1,k2,……,k n)是大根堆,试完成下面的算法,使得将(k1,k2,……,k n+1)调整成大根堆,并回答相关问题。
(数组k 空间充足,0 号下标不用) (每空2 分) void HeapSort ( int k[], int n) //n 为已知大根堆的元素个数{int i=n+1;while ( ) //i 不是根结点{int j = i / 2;if (k[i] <= k[j]); //已经是大根堆,跳出循环else{} int temp =k[i];; //父结点和子结点交换;; //迭代}}void main(){int k[20]={0,50,40,45,36,32,18,22,30,42};HeapSort(k,8);for (int i=1;i<=9;i++)cout<<k[i]<< " ";}(1)执行该程序,程序输出结果为试卷四答案一.填空题(22 分,每空1 分)1.O(1) O(nlogn)2.2 集合线性表树图3.3 . 334.4. 2 3 100B5. 中序6. 2*n-17. i*n*p +j*p+k i+j*m+k*m*n8. 439. 前序栈层序队列10. 0 n*(n-1)/2 0 n*(n-1)二.单选题(23 分,每空1 分)1. BADC2.AC 3.C 4.D 5.D6. B7. C8. C9. A10. C11. A12. B13. C14. D15. DBEAC三.综合题(32 分)1、(3分) 31 72 5 84 62、(3分)10060152513117181812 (3 分)60 25 15 18 13 11 7 12 18 1003、(4分)12345678 9 10(2 分)ASL=(1+1+1+1 + 2+2+2 +3) /8 = 1.6253.(1)(4 分)EG D FBAC(2)WPL = 2.29(2 分) (3)最长 5 位 字符是AC最短 1 位 字符是E5、深度遍历(2 分):1 2 4 3 5 6广度遍历(2 分):1 2 3 4 6 5(2)画出该图的最小生成树。
(3 分)四. 程序题(23 分)1 将十进制整数转换成二进制数(2 分) 1001101(2 分)2.(7 分) r[0] = r[i] low <=high high = m-1 low = m+1 i low+1 r[low] = r[0]3.(12 分)i>1 or i!=1 or i!=k1 break orreturn42 20 ^3210 54^^62 1 45 2 65133k[i] =k[j] k[j]= temp i= j;50 42 45 40 32 18 22 30 36。