(完整word版)12年南大金陵学院数据结构期末考试

合集下载

12年南大金陵学院数据结构期末考试

12年南大金陵学院数据结构期末考试

南京大学金陵学院期末试卷2011~2012学年第一学期数据结构期末考试试题 A 09 1. 2 学号__________ 姓名_____________ 成绩___________一选择题(共15 题,每题2分,计30 分)在下列各题A)、B)、C)、D) 四个选项中,选择一个正确的选项,将其字母编号填写在括号中。

(1)下列哪个选项是错误的?()A) 2n+n3 = O(2n) B) 2n+1 = O(2n)C) 22n = O(2n) D) O(n2) < O(2n)(2) 在下列4个选项中,声明一个向量数组的是( )A) vector<char> vex ; B) vector<char> vec(10) ;C) vector<cha> vex[10] ; D) vector<char > vex(10, 'a' );(3) 下列每组代码利用标准容器list建立一个表,然后逐个删除表中的元素。

其中那组代码是正确的?( )A)list<int> lst; B) list<int> lst;for( int i = 0;i<5;i++) lst.push_back(i); for( int i = 0;i<5;i++) lst.push_back(i);list<int>::iterator p; list<int>::iterator p=lst.begin();for( p=lst.begin() ; p!=lst.end() ; p++) lst.erase(p); while( !lst.empty() ) lst.erase(p);C) list<int> lst; D) list<int> lst;for( int i = 0;i<5;i++) lst.push_back(i); for( int i = 0;i<5;i++) lst.push_back(i);list<int>::iterator p=lst.begin(); list<int>::iterator p=lst.begin();while(p!=lst.end() ) lst.erase(p); while(p!=lst.end() ) p=lst.erase(p);(4) 字符a、b、c、d依次进入一个栈,按所有可能的次序出栈后组成一个长度是4的字符串,至多可以组成多少个不同的字符串?()A) 4 B) 14 C) 24 D) 16(5)设有如下定义的数组Q:const int m=20 ;T Q[m];//T为队列元素的类型Q存储一个环形队列。

数据结构期末考试试卷及答案

数据结构期末考试试卷及答案

数据结构期末考试试卷及答案一、选择题(每题2分,共20分)1. 下面哪一项不是数据结构的基本类型?()A. 线性结构B. 树形结构C. 集合结构D. 图形结构答案:C2. 在链表中,存储元素的数据域称为(),存储下一个元素地址的域称为()。

A. 节点,指针B. 指针,节点C. 数据域,指针域D. 指针域,数据域答案:C3. 下面哪种排序算法的平均时间复杂度最高?()A. 冒泡排序B. 快速排序C. 堆排序答案:A4. 在二叉树中,具有n个节点的完全二叉树的深度至少是()A. log2nB. log2(n+1)C. log2n+1D. log2(n-1)答案:C5. 下面哪种树的节点中不包含任何关键字?()A. 二叉搜索树B. 哈希树C. 平衡二叉树D. B树答案:B6. 下面哪个算法不是用来解决排序问题的?()A. 快速排序B. 冒泡排序C. 二分查找答案:C7. 下面哪种数据结构的存储方式不是顺序存储?()A. 线性表B. 栈C. 队列D. 树答案:D8. 下面哪种算法的时间复杂度是O(nlogn)?()A. 冒泡排序B. 快速排序C. 插入排序D. 选择排序答案:B9. 下面哪个算法不是用来解决查找问题的?()A. 二分查找B. 顺序查找C. 快速排序D. 哈希查找答案:C10. 下面哪个算法不是用来解决图论问题的?()A. 深度优先搜索B. 广度优先搜索C. 最短路径算法D. 快速排序答案:D二、填空题(每题2分,共20分)11. 在线性表中,插入和删除操作的时间复杂度是______。

答案:O(n)12. 在链表中,插入和删除操作的时间复杂度是______。

答案:O(1)13. 快速排序的平均时间复杂度是______。

答案:O(nlogn)14. 堆排序的平均时间复杂度是______。

答案:O(nlogn)15. 二分查找的时间复杂度是______。

答案:O(logn)16. 在二叉树中,度为0的节点数等于度为2的节点数加______。

南大金陵嵌入式13级期末试卷B卷.doc

南大金陵嵌入式13级期末试卷B卷.doc

南京大学金陵学院期末试卷(B 卷)2012~2013学年度第一学期一、判断题(共10题,每题1分,计10分〉1设计SoC 相当于设计一个嵌入式计算机系统,是嵌入式系统开发的核心所在。

T2. 应用程序可以直接在MAND Flash 闪存内运行,F3. 嵌入式操作系统大多采用抢占式调度内核T4. 嵌入式系统的操作系统和应用程序是一体化集成在一起的,其结构不易用层次结构来 表达。

F5. 嵌入式系统的RT0S 要求操作系统比应用软件具有更高的可靠性T6. 硬实时应用对实时能力有严格的要求,响应时间在毫秒或秒级.F7. 20世纪90年代,现代操作系统的设计思想开始渗入RT0S 领域。

此间,风河推出了 Vxworko 并组成自己完整的开发环境。

T8. 嵌入式系统已进入32位处理器时代,软件开发规模迅速增大,嵌入式软件规模已达到 数百万行至数千万行的规模。

F9. 对安装有多核处理器的目标板调试,目前还不能用JTAG-1CE 进行。

F10. 指令集模拟器即是一种CPU 仿真,可方便用户在PC 机上完成绝大部分软件的调试工 作.F二、选择题(共25题,每题2分,计50分》1. 一款采用ARM V7结构,具备高可靠性,强实时处理能力的ARM 内核应是 ______A ARM11 系列B. Cortex M 系列C. Cortex A 系列D. Cortex R 系列2. 实际的嵌入式系统对实时性的要求各不相同,其中 _______ 属软实时应用:A. 机器人B.打印jLC. 汽车杀ij 车控芾ijD. 电梯3. IP 集成复用技术是建立在芯核(CORE )基础上的,所谓固核是指 ________ .A. 是一种可综合的色含具体结构信息的代码,是逻辑综合后的描述,B. 以硬件描述语言描述的代码,可根据具体的半导体工艺重新综合C. 经物理综合后的可直接用于制作的描述D. 1P 核代码以固件形式置于ROM 中4. 当前,嵌入式系统软件开发的变化很大,但 ____ 并非正确的描述.A. 硬件接口的复杂化、多样化、网络化B. 开发用主机必需与网络连结C. 引入实时多任务操作系统D. 硬件设计开发的同时,需要同时进行应用软件包的开发5. 提高系统实时性能有多种方式,以下方式中 _______ 是错误的A. 尽量釆用软件处理课程名称:嵌入式系统原理与应用 专业: _______________ 学号:_ 教师姓名黄强 .姓名: _试卷类型匕迁 总分: ________B.采用高实时处理性能的微处理器C.采用棊于实时操作系统的多线程程序D.采用并行处理机制6.使用系统级语言可对系统参数、软硬件分割、系统预期性能进行仿真评价, _____ 不属于系统级设计语言.A.SystemVerilog。

数据结构期末考试卷试题包括答案

数据结构期末考试卷试题包括答案

2012 年数据结构期末考试题及答案一、选择题1.在数据结构中,从逻辑上能够把数据结构分为C。

A.动向结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外面结构2.数据结构在计算机内存中的表示是指A。

A .数据的储存结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系3.在数据结构中,与所使用的计算机没关的是数据的A结构。

A.逻辑B.储存C.逻辑和储存D.物理4.在储存数据时,往常不单要储存各数据元素的值,并且还要储存C。

A.数据的办理方法B.数据元素的种类C.数据元素之间的关系D.数据的储存方法5.在决定选用何种储存结构时,一般不考虑A。

A.各结点的值怎样B.结点个数的多少C.对数占有哪些运算D.所用的编程语言实现这类结构能否方便。

6.以下说法正确的选项是D。

A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的会合D.一些表面上很不同样的数据能够有同样的逻辑结构7.算法剖析的目的是C,算法剖析的两个主要方面是A。

(1)A .找出数据结构的合理性B.研究算法中的输入和输出的关系C.剖析算法的效率以求改良C.剖析算法的易读性和文档性(2)A.空间复杂度和时间复杂度B.正确性和简洁性C.可读性和文档性D.数据复杂性和程序复杂性8.下边程序段的时间复杂度是O(n2)。

s=0;for( I = 0; i < n; i++)for( j=0;j <n;j++)s += B[i][j] ;sum = s ;9.下边程序段的时间复杂度是O(n*m )。

for( i = 0; i <n; i++)for( j=0;j <m;j ++)A[i][j] = 0;10.下边程序段的时间复杂度是O(log3n)。

i = 0;while(i <= n)i = i * 3 ;11.在以下的表达中,正确的选项是B。

A.线性表的次序储存结构优于链表储存结构B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.行列的操作方式是先进后出12.往常要求同一逻辑结构中的全部数据元素拥有同样的特征,这意味着B。

(完整word版)数据结构试卷及答案(word文档良心出品)

(完整word版)数据结构试卷及答案(word文档良心出品)

注意事项:1、下面关于串的叙述中,哪一个是不正确的?( )A .串是字符的有限序列B .空串是由空格构成的串C .模式匹配是串的一种重要运算D .串既可以采用顺序存储,也可以采用链式存储 2、设无向图的顶点个数为n ,则该图最多有( )条边。

A .n-1B .n(n-1)/2C . n(n+1)/2D .0 3、以下数据结构中,( )是非线性数据结构。

A .树B .字符串C .队列D .栈 4、下面关于线性表的叙述中,错误的是哪一个?( )A .线性表采用顺序存储,必须占用一片连续的存储单元。

B .线性表采用顺序存储,便于进行插入和删除操作。

C .线性表采用链接存储,不必占用一片连续的存储单元。

D .线性表采用链接存储,便于插入和删除操作。

5、假设以数组A[m]存放循环队列的元素,其头尾指针分别为front 和rear ,则当前队列中的元素个数为( )。

A .(rear-front+m)%mB .rear-front+1C .(front-rear+m)%mD .(rear-front)%m6、在单链表指针为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; 7、设栈的输入序列是1,2,3,4,则( )不可能是其出栈序列。

A .1,2,4,3B .2,1,3,4C .1,4,3,2D .4,3,1,2, 8、广义表(a,(b,c),d,e )的表头和表尾分别为( )。

A .a 和(b,c),d,e B .(a )和(b,c),d,eC .a 和 ((b,c),d,e)D .(a) 和((b,c),d,e)9、栈和队都是( )A .顺序存储的线性结构B .链式存储的非线性结构C .限制存取点的线性结构D .限制存取点的非线性结构 10、从逻辑上可以把数据结构分为( )两大类。

数据结构考试题目及答案pdf

数据结构考试题目及答案pdf

数据结构考试题目及答案pdf一、单项选择题(每题2分,共10分)1. 在数据结构中,线性结构和非线性结构的主要区别在于()。

A. 数据元素之间是否有逻辑关系B. 是否有且仅有一个根节点C. 是否有多个根节点D. 数据元素之间是否有顺序关系答案:A2. 链表中每个节点包含数据元素和()。

A. 一个指针B. 多个指针C. 一个数据域D. 一个数据域和一个指针答案:D3. 在二叉树的遍历中,先序遍历的顺序是()。

A. 根-左-右B. 左-根-右C. 右-根-左D. 根-右-左答案:A4. 哈希表解决冲突的方法不包括()。

A. 开放寻址法B. 链地址法C. 线性探测法D. 二分查找法答案:D5. 堆是一种特殊的完全二叉树,其特点是()。

A. 每个节点的值都大于其子节点的值B. 每个节点的值都小于其子节点的值C. 每个节点的值都大于或等于其子节点的值D. 每个节点的值都小于或等于其子节点的值答案:C二、填空题(每题2分,共10分)1. 在顺序表中,插入一个元素的平均时间复杂度为 O(n) 。

2. 栈是一种特殊的线性表,其特点是后进先出(LIFO),即后进的元素先出栈。

3. 快速排序的时间复杂度在最坏情况下为 O(n^2) 。

4. 广义表的表示形式为 (a, b, c) ,其中a、b、c可以是数据元素或子表。

5. 在图的遍历中,深度优先搜索(DFS)使用的是栈数据结构。

三、简答题(每题10分,共20分)1. 请简述二叉搜索树和平衡二叉树的区别。

答:二叉搜索树是一种特殊的二叉树,其中每个节点的左子树只包含小于该节点的值,右子树只包含大于该节点的值。

平衡二叉树除了满足二叉搜索树的性质外,还要求每个节点的左子树和右子树的高度差不超过1,以保持树的平衡,从而提高查找效率。

2. 什么是图的连通分量?请举例说明。

答:图的连通分量是指图中的最大的连通子图。

如果一个图不是连通的,那么它将被划分为若干个连通分量,每个连通分量内部的顶点都是相互连通的,但不同分量之间没有直接的边相连。

南京大学《数据结构》期末试卷(含答案)

南京大学《数据结构》期末试卷(含答案)

考试科目名称 数据结构〔A1 卷〕1、填空题。

〔每题 2 分,此题总分值 20 分〕 (1) C++语言中,数组是按行优先顺序存储的,假设定义了一个二维数组 A[20][30],每个元素占两个字节,其起始地址为 2140,那么二维数组 A 的最后一个数据元素的地址为 2140+2*(30*20-1) = 3338(3338,3339) 。

(2) 假设 A ,B 是两个单链表,链表长度分别为 n 和 m ,其元素值递增有序,将 A 和 B 归并成一个按元素值递增有序的单链表,并要求辅助空间为 O(1),那么实现该功能的算法的时间复杂度为 O(m+n)。

(3) 快速排序的平均时间复杂度是n*lg n。

(4) 假设有一个包含 9 个元素的最小堆,存放在数组 A 中,那么一定比 A[3]大的元素有__2 (A[7],A[8]) 个;一定比 A[3]小的元素有 2 (A[0],A[1])个。

〔元素从第 0 个位置开始存放〕(5) 广义表(((A)),(B,C), D, ((A), ((E,F)))) 的长度是4,深度是 4。

(6) 有 10 个元素的有序表,采用折半查找,需要比拟 4 次才可找到的元素个数为3。

(7〕当两个栈共享一存储区时,栈利用一维数组 A[n]表示,两栈顶指针为 top[0]与 top[1],那么栈满时的判断条件为top[0]+1=top[1]_ 或者 top[0] = top[1]+1。

(8) 假设计算斐波那契数的函数 Fib(long n)定义如下:long Fib(long n){if(n<=1) return n;else return Fib(n-1)+Fib(n-2)}计算 Fib(5)时的递归调用树〔即指明函数调用关系的树〕的高度是 4 子结点所在的高度为 0。

假设叶(9)(10) 假设用子女—兄弟链表方式表示森林,对应的二叉树的根结点是 p ,那么森林的第三棵树的根结点在二叉树中对应的结点是: p->rightchild->rightchild。

数据结构期末考试试题(含答案)

数据结构期末考试试题(含答案)

数据结构期末考试试题(含答案)题目一请写出快速排序算法的递归实现。

解答一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);}}以上是数据结构期末考试试题及其答案。

数据结构期末考试试题及答案

数据结构期末考试试题及答案

数据结构期末考试试题及答案数据结构期末考试试题及答案随着信息时代的到来,数据的处理和管理变得愈发重要。

数据结构作为计算机科学的基础课程之一,对于培养学生的编程思维和解决问题的能力具有重要意义。

数据结构期末考试是对学生掌握该课程知识的一次全面检验。

本文将为大家提供一些常见的数据结构期末考试试题及答案,希望能够对大家复习备考有所帮助。

1. 请解释什么是数据结构,并举例说明。

数据结构是指在计算机中组织和存储数据的方式。

它关注的是数据的逻辑关系和操作,而不仅仅是数据本身。

常见的数据结构有数组、链表、栈、队列、树等。

举例来说,数组是一种线性结构,它将相同类型的数据元素按照一定的顺序存储在一块连续的内存空间中,可以通过索引来访问和修改元素。

2. 请说明数组和链表的区别,并分别列举它们的优缺点。

数组和链表都是常见的线性数据结构,但它们在存储方式和操作上有所不同。

数组将元素存储在连续的内存空间中,通过索引可以直接访问和修改元素。

链表则通过节点和指针的方式将元素串联起来,每个节点包含数据和指向下一个节点的指针。

数组的优点是访问速度快,可以通过索引直接定位元素,适合随机访问。

缺点是插入和删除操作比较耗时,需要移动其他元素。

链表的优点是插入和删除操作简单高效,只需要修改指针即可,不需要移动其他元素。

缺点是访问速度较慢,需要遍历链表才能找到指定位置的元素。

3. 请解释什么是栈和队列,并分别列举它们的应用场景。

栈和队列都是常见的线性数据结构,它们在数据的插入和删除操作上有所不同。

栈是一种后进先出(LIFO)的数据结构,只允许在栈顶进行插入和删除操作。

队列是一种先进先出(FIFO)的数据结构,允许在队尾进行插入操作,在队头进行删除操作。

栈的应用场景有很多,比如函数调用栈、表达式求值、括号匹配等。

函数调用栈用于保存函数的局部变量和返回地址,保证函数的正确执行顺序。

表达式求值中,栈可以用于保存运算符和中间结果,实现正确的计算顺序。

南大金陵操作系统期末试卷叶长青

南大金陵操作系统期末试卷叶长青

操作系统期末试卷(2012第一学期)专业_____________ 学号______________________ 姓名_______________一、选择题(每小题1分,共15分)1、在计算机系统中,操作系统是()A 一般应用软件B 核心系统软件C 用户应用软件D 系统支撑软件2、批处理操作系统的主要缺点是()A 资源利用率不高B 作业吞吐量小C 人机交互能力差D 作业周转时间短3、一个作业从提交给系统到该作业完成的时间间隔称为()A 周转时间B 响应时间C 等待时间D运行时间4、十几年前一位芬兰大学生在Internet上公开发布了以下一种免费操作系统核心(),经过许多人的努力,该操作系统正不断完善,并被推广。

AWindows NT BLinuxCUNIX DOS25、多个进程存在于同一内存中,在一段时间同时运行,这种性质称为进程的()A 动态性B 并发性C 调度性D 异步性6、关于进程的运行、就绪和阻塞三个状态,下列说法正确的是()A 每个进程从创建到撤销都要经历这三个状态B 每个进程从创建到撤销,各个状态只能经历一次C 某些进程可以从阻塞态转为运行态D 某些进程可以从运行态转为就绪态7、进程和程序的一个本质区别是()A 前者为动态的,后者为静态的B 前者存储在内存,后者存储在外存C 前者在一个文件中,后者在多个文件中D 前者分时使用CPU,后者独占CPU8、UNIX系统中,用于创建新进程的系统调用命令是()A forkB pipeC exitD CreateProcess9、关于页表的叙述,下列说法错误的是()A 内存中每一个进程都有自己的页表B 页表属于内核的数据结构C 页表项的大小跟处理器有关D 页表必须全部放在内存当中10、操作系统中,进程间交换数据的过程称为()A 进程共享B进程同步C进程通信D进程协调11、进程在系统中是否存在的唯一标志是()A 数据集合B代码集合 C 源程序 D 进程控制块12、避免死锁的一个著名算法是A 先入先出算法B银行家算法C彼得森算法 D KMP算法13、处理器执行的指令被分成两类,其中有一类称为特权指令,它只允许()使用A操作员B联机用户C操作系统D目标程序14、设有5个进程共享一个互斥段,当前系统中有3个进程,则所采用的互斥段信号量的初值是()A 5B 3C 1D 015、下列选项中,能引起外部中断的事件是( )A键盘输入 B 除数为0 C浮点运算下溢D访存缺页二、判断题(每小题1分,共10分)1、进程和线程都有挂起状态。

《数据结构》期末考试试卷(含答案)

《数据结构》期末考试试卷(含答案)

《数据结构》期末考试试卷( A )一、选择题(每小题2分,共24分)1.计算机识别、存储和加工处理的对象被统称为( A )A.数据B.数据元素C.数据结构D.数据类型2.栈和队列都是(A)A.限制存取位置的线性结构B.顺序存储的线性结构C.链式存储的线性结构D.限制存取位置的非线性结构3.链栈与顺序栈相比,比较明显的优点是( D )A.插入操作更加方便B.删除操作更加方便C.不会出现下溢的情况D.不会出现上溢的情况4.采用两类不同存储结构的字符串可分别简称为( B )A.主串和子串B.顺序串和链串C.目标串和模式串D.变量串和常量串5.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是:BA. 110 B .108C. 100D. 1206.串是一种特殊的线性表,其特殊性体现在:BA.可以顺序存储 B .数据元素是一个字符C. 可以链接存储D. 数据元素可以是多个字符7.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为:CA. 2h B .2h-1C. 2h+1D. h+1软件开发网8.树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。

这里,我们把由树转化得到的二叉树叫做这棵树对应的二叉树。

下列结论哪个正确?AA. 树的先根遍历序列与其对应的二叉树的先序遍历序列相同B .树的后根遍历序列与其对应的二叉树的后序遍历序列相同C. 树的先根遍历序列与其对应的二叉树的中序遍历序列相同D. 以上都不对9.一个有n个顶点的无向图最多有多少边?CA. n B .n(n-1)C. n(n-1)/2D. 2n10.在一个图中,所有顶点的度数之和等于所有边数的多少倍?CA. 1/2 B .1C. 2D. 411.当在二叉排序树中插入一个新结点时,若树中不存在与待插入结点的关键字相同的结点,且新结点的关键字小于根结点的关键字,则新结点将成为(A)A.左子树的叶子结点B.左子树的分支结点C.右子树的叶子结点D.右子树的分支结点软件开发网12.对于哈希函数H(key)=key%13,被称为同义词的关键字是( D )A.35和41B.23和39C.15和44D.25和51二、已知某棵二叉树的前序遍历结果为A,B,D,E,G,C,F,H,I,J,其中中序遍历的结果为D,B,G,E,A,H,F,I,J,C。

数据结构期末考试题及答案

数据结构期末考试题及答案

数据结构期末考试题及答案一、单项选择题(每题3分,共30分)1. 在数据结构中,最基本的数据结构是()。

A. 线性结构B. 树形结构C. 图形结构D. 非线性结构答案:A2. 栈是一种特殊的线性表,其特点是()。

A. 先进先出B. 先进后出C. 后进先出D. 后进后出答案:C3. 在二叉树中,度为2的结点数为n,度为1的结点数为m,度为0的结点数为p,则m的值为()。

A. n-1B. n+1C. p-1D. p+1答案:A4. 哈希表的构造方式是()。

A. 线性结构B. 树形结构C. 链式结构D. 索引结构答案:D5. 在图的遍历过程中,深度优先搜索算法采用的是()。

A. 队列B. 栈C. 链表D. 树答案:B6. 快速排序算法的时间复杂度在最坏情况下是()。

A. O(n)B. O(nlogn)C. O(n^2)D. O(2^n)答案:C7. 以下哪个排序算法是不稳定的排序算法()。

A. 冒泡排序B. 快速排序C. 归并排序D. 堆排序答案:B8. 在数据库中,索引通常采用哪种数据结构()。

A. 线性表B. 树形结构C. 图形结构D. 散列表答案:B9. 以下哪个不是二叉搜索树的性质()。

A. 左子树上所有结点的值都小于它的根结点的值B. 右子树上所有结点的值都大于它的根结点的值C. 左、右子树也分别为二叉搜索树D. 所有结点的值都相等答案:D10. 在图的表示方法中,邻接矩阵适用于表示()。

A. 稠密图B. 稀疏图C. 有向图D. 无向图答案:A二、填空题(每题4分,共20分)1. 在数据结构中,一个算法的空间复杂度是指算法在执行过程中需要的___________。

答案:存储空间2. 堆排序中,调整堆的过程称为___________。

答案:堆化3. 在图的遍历中,广度优先搜索使用的辅助数据结构是___________。

答案:队列4. 一个长度为n的链表,删除第i个元素的时间复杂度是___________。

数据结构期末考试题及答案

数据结构期末考试题及答案

数据结构期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪种数据结构是先进先出(FIFO)的?A. 栈B. 队列C. 树D. 图2. 在链表中进行插入和删除操作时,以下哪种操作的时间复杂度是O(1)?A. 在链表头部插入B. 在链表尾部插入C. 在链表中间插入D. 在链表任意位置插入或删除3. 下列哪种排序算法的平均时间复杂度是O(n log n)?A. 冒泡排序B. 选择排序C. 快速排序D. 插入排序4. 在二叉树中,下列哪种遍历方法先访问根节点?A. 前序遍历B. 中序遍历C. 后序遍历D. 层次遍历5. 下列哪种图中的边没有方向?A. 有向图B. 无向图C. 树D. 图二、填空题(每题2分,共20分)6. 在顺序栈中,栈满时进行入栈操作会产生__________现象。

7. 在顺序队列中,队满时进行入队操作会产生__________现象。

8. 在二叉树中,度为0的节点称为__________节点。

9. 快速排序算法的时间复杂度为__________。

10. 图的存储结构主要有__________、__________和__________三种。

三、判断题(每题2分,共20分)11. 在链表中,删除节点时必须先找到待删除节点的前一个节点。

()12. 二分查找算法的时间复杂度为O(n)。

()13. 在二叉树中,度为2的节点个数等于度为0的节点个数减1。

()14. 在哈希表中,不同的关键字可能会映射到同一个位置,这种现象称为冲突。

()15. 图的邻接矩阵表示法适用于稀疏图。

()四、解答题(共40分)16. 请简述快速排序算法的基本思想和步骤。

(10分)17. 请证明:在二叉树中,度为0的节点个数等于度为2的节点个数加1。

(10分)18. 请编写一个函数,实现将一个链表逆序的功能。

(10分)19. 请设计一个算法,实现将一个无向图的邻接矩阵转换为邻接表。

(10分)### 数据结构期末考试答案一、选择题1. B2. A3. C4. A5. B二、填空题6. 上溢7. 下溢8. 叶子节点9. O(n log n)10. 邻接矩阵、邻接表、边集数组三、判断题11. √12. ×(二分查找算法的时间复杂度为O(log n))13. √14. √15. ×(图的邻接矩阵表示法适用于稠密图)四、解答题16. 快速排序算法的基本思想是:选择一个基准元素,将比基准元素小的元素放在其左边,比基准元素大的元素放在其右边,然后递归地对左右两个子区间进行快速排序。

数据结构期末考试题及答案

数据结构期末考试题及答案

数据结构期末考试题及答案一、单项选择题(每题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. 顺序表的存储结构是使用___________连续的存储单元依次存储数据元素。

大学数据结构期末考试试题(有答案)

大学数据结构期末考试试题(有答案)

“数据结构”期末考试试题一、单选题(每小题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条边的图进行任一种遍历时,其时间复杂度为-—,对用邻接表表示的图进行任一种遍历时,其时间复杂度为—-。

(完整word版)数据库期末考试复习试题与答案(word文档良心出品)

(完整word版)数据库期末考试复习试题与答案(word文档良心出品)

A .车次B .日期试题一一、单项选择题(本大题共20小题,每小题2分,共40分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选 或未选均无分。

1 .数据库系统的核心是( B )B. 数据库管理系统C •数据模型 2.下列四项中,不属于数据库系统的特点的是( C ) A •数据结构化 B .数据由DBMS 统一管理和控制 C .数据冗余度大D .数据独立性高3. 概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是 (D ) A •层次模型 B .关系模型 C •网状模型D •实体-联系模型4. 数据的物理独立性是指(C )A •数据库与数据库管理系统相互独立B ・用户程序与数据库管理系统相互独立C •用户的应用程序与存储在磁盘上数据库中的数据是相互独立的D •应用程序与数据库中数据的逻辑结构是相互独立的 5 •要保证数据库的逻辑数据独立性,需要修改的是(A )A •模式与外模式之间的映象B ・模式与内模式之间的映象C •模式D •三级模式6 •关系数据模型的基本数据结构是( D )A .树B .图C .索引D .关系7 .有一名为“列车运营”实体,含有:车次、日期、实际发车时间、实际抵达时间、情况摘要等属性,该实体主码是( C )A •数据库 D .软件工具)21 21李勇 李勇BM MK JC A BD(D)图112.图1中10 .用下面的T-SQL 语句建立一个基本表:C •车次+日期D •车次+情况摘要8. 己知关系R 和S, R A S 等价于( B )A. (R-S)-SB. S-(S-R)9 .学校数据库中有学生和宿舍两个关系:学生(学号,姓名)和宿舍(楼名,房间号,床位号,学号)假设有的学生不住宿,床位也可能空闲。

如果要列出所有学生住宿和宿舍分 配的情况,包括没有住宿的学生和空闲的床位,则应执行( A )A.全外联接B.左外联接 CREATE TABLE Stude nt(S no CHAR(4) PRIMARY KEY,Sn ame CHAR(8) NOT NULL,Sex CHAR(2),11.把对关系SPJ 的属性QTY 的修改权授予用户李勇的 T-SQL 语句是( C )A. GRANT QTY ON SPJ TO '李勇’13 •关系规范化中的插入操作异常是指A •不该删除的数据被删除B .不该插入的数据被插入C •应该删除的数据未被删除D .应该插入的数据未被插入A)阶段的任C. (S-R)-RD. S-(R-S)C.右外联接D.自然联接14 .在关系数据库设计中,设计关系模式是数据库设计中(Age INT )可以插入到表中的元组是( DB. NULL ,'刘祥',NULL , 21 D. '5021','刘祥',NULL , NULL B. GRANT UPDATE(QTY) ON SPJ TO 'C. GRANT UPDATE (QTY) ON SPJ TOD. GRANT UPDATE ON SPJ (QTY) TO 李勇 )是最小关系系统A. '5021','刘祥',男, C. '5021' , NULL ,男,A .逻辑设计B .物理设计15 .在E-R 模型中,如果有3个不同的实体型,3个m:n 联系,根据E-R 模型转 换为关系模型的规则,转换后关系的数目为( C )。

数据结构期末试题及答案.doc

数据结构期末试题及答案.doc

数据结构期末试题及答案. E 卷一、单项选择题1、线性表若采用链式结构时,要求内存中可用存储单元的地址( )。

A. 必须是连续的B. 部分地址必须是连续的C. 一定是不连续的D. 连续不连续都可以2、判定一个栈ST(最多元素为m0)为空的条件是( )。

A. ST-一、单项选择题1、线性表若采用链式结构时,要求内存中可用存储单元的地址( )。

A. 必须是连续的B. 部分地址必须是连续的C. 一定是不连续的D. 连续不连续都可以2、判定一个栈ST(最多元素为m0)为空的条件是( )。

A. ST:addr(15)=4 addr(38)=5 addr(61)=6 addr(84)=7 其余地址为空如用二次探测再散列处理冲突,关键字为49的结点的地址是( )。

A. 8B. 3C. 5D. 95、在线索化二叉树中,t所指结点没有左子树的充要条件是( )。

A. t-5、在线索化二叉树中,t所指结点没有左子树的充要条件是( )。

A. t:abdce; 广度优先遍历序列为:abedc26、27、答:(1)比较次数分别为3、2、1、1。

(2)平均查找长度ASL=(3+2+1+1+2)/5=1.828、初始:17,18,60,40,7,32,73,65,85 第1趟:17,18,40,7,32,60,65,73,85 第2趟:17,18,7,32,40,60,65,73,85 第3趟:17,7,18,32,40,60,65,73,85 第4趟:7,17,18,32,40,60,65,73,85 第5趟:7,17,18,32,40,60,65,73,85四、算法阅读题(每小题6 分,共12 分)29.(1)flag = 0;(2)1到n-1;(3)R[j+1].key;(4)R[j] =R[j+1];(5)flag=030.q = p-.rlink q-link <0 q =(-1)*(q-llink)q = q-.llink五、算法设计题(共8分)参考答案void swap(dnode*p) { dnode * q; q=p-right; if (q==NULL ) printf(“不能进行交换!/n”); else { p-right=q-right; p-right-left=p; p-left-right=q; q-left=p-left; p-left=q; q-right=p; } }word 资料达到当天最大量API KEY 超过次数限制。

数据结构期末考试题及答案

数据结构期末考试题及答案

数据结构期末考试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,线性结构和非线性结构的主要区别在于()。

A. 结构是否有序B. 结构中元素之间是否有一对一的对应关系C. 结构中元素之间是否有多对多的对应关系D. 结构中元素之间是否有一对多的对应关系答案:B2. 栈的基本操作不包括()。

A. 入栈B. 出栈C. 排序D. 查看栈顶元素答案:C3. 在二叉树中,度为2的节点称为()。

A. 叶子节点B. 分支节点C. 内部节点D. 根节点答案:B4. 哈希表解决冲突的方法不包括()。

A. 开放定址法B. 链地址法C. 线性探测法D. 排序法答案:D5. 快速排序算法的时间复杂度在最坏情况下是()。

A. O(n)B. O(nlogn)C. O(n^2)D. O(logn)答案:C6. 链表不具有的特点是()。

A. 动态存储B. 随机访问C. 无需额外空间D. 可变长度答案:B7. 归并排序的时间复杂度是()。

A. O(n)B. O(nlogn)C. O(n^2)D. O(logn)答案:B8. 队列的特点是()。

A. 后进先出B. 先进先出C. 先进后出D. 后进后出答案:B9. 深度优先搜索(DFS)和广度优先搜索(BFS)的主要区别在于()。

A. 搜索方向B. 搜索顺序C. 搜索深度D. 搜索广度答案:B10. 图的遍历算法不包括()。

A. 深度优先搜索B. 广度优先搜索C. 回溯法D. 动态规划答案:D二、填空题(每题2分,共20分)1. 在数据结构中,____是指元素之间存在一对一的对应关系。

答案:线性结构2. 栈的特点是____,即后进先出。

答案:LIFO3. 完全二叉树是一种特殊的二叉树,其中除了最后一层外,每一层都被完全填满,并且最后一层的所有节点都尽可能地靠____。

答案:左4. 哈希表是一种通过____来访问数据的数据结构。

答案:哈希函数5. 在排序算法中,____排序是一种不稳定的排序算法。

2012级数据结构期末试题提纲

2012级数据结构期末试题提纲

数据结构期末复习提纲(2012级)A、总体要求:1、掌握数据结构的基本概念、基本原理和基本方法。

2、掌握数据的逻辑结构、存储结构及基本操作的实现,能够对算法进行基本的时间复杂度和空间复杂度的分析。

3、能够运用数据结构的基本原理和方法进行问题的分析与求解,具备采用C语言和C++语言设计与实现算法的能力。

一、基本概念1、数据结构、数据元素、数据项、数据类型、抽象数据类型、算法、算法的时间复杂度、算法的空间复杂度、算法的评价标准。

2、数据结构的逻辑结构和存储结构及分类。

3、线性表的定义及特点。

4、顺序表、单链表、双向链表、循环链表、静态链表的存储结构。

5、栈和队列的定义及特点。

6、顺序栈、链栈、顺序队列、链队列的存储结构。

7、字符串的定义及特点。

8、顺序串和链串的存储结构。

9、数组的定义及特点。

10、数组的按行存储与按列存储。

11、对称矩阵、三角矩阵、稀疏矩阵的压缩存储。

12、二叉树的定义、一般术语及特点。

13、二叉树的五个基本性质。

14、完全二叉树与满二叉树的概念。

15、二叉树的顺序存储结构。

16、二叉树的二叉链表与三叉链表存储结构。

17、二叉树的四种遍历方式及特点。

18、线索二叉树的存储结构及特点。

19、树和森林的概念。

20、树的双亲链表和孩子兄弟链表存储结构。

21、树和森林的二种遍历方式。

22、图的定义、一般术语及特点。

23、图的邻接矩阵、邻接表、逆邻接表存储结构。

24、图的二种遍历方式及特点、优先遍历生成树的概念。

25、图的连通性、连通图、连通分量的概念。

26、有向无环图的概念及特点。

27、查找、查找表、关键字的概念。

28、顺序查找、折半查找、分块索引查找的概念。

29、二叉排序树和平衡二叉树的定义及特点,平衡因子的概念。

30、B_树的定义及存储结构特点。

31、哈希函数、哈希表、哈希冲突、哈希查找的概念。

32、哈希表装填因子的定义及作用。

33、内部排序、外部排序、排序方法、传统排序和优化排序的概念。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京大学金陵学院期末试卷2011~2012学年第一学期数据结构期末考试试题 A 09 1. 2 学号__________ 姓名_____________ 成绩___________一选择题(共15 题,每题2分,计30 分)在下列各题A)、B)、C)、D) 四个选项中,选择一个正确的选项,将其字母编号填写在括号中。

(1)下列哪个选项是错误的?()A) 2n+n3 = O(2n) B) 2n+1 = O(2n)C) 22n = O(2n) D) O(n2) < O(2n)(2) 在下列4个选项中,声明一个向量数组的是( )A) vector<char> vex ; B) vector<char> vec(10) ;C) vector<cha> vex[10] ; D) vector<char > vex(10, 'a' );(3) 下列每组代码利用标准容器list建立一个表,然后逐个删除表中的元素。

其中那组代码是正确的?( )A)list<int> lst; B) list<int> lst;for( int i = 0;i<5;i++) lst.push_back(i); for( int i = 0;i<5;i++) lst.push_back(i);list<int>::iterator p; list<int>::iterator p=lst.begin();for( p=lst.begin() ; p!=lst.end() ; p++) lst.erase(p); while( !lst.empty() ) lst.erase(p);C) list<int> lst; D) list<int> lst;for( int i = 0;i<5;i++) lst.push_back(i); for( int i = 0;i<5;i++) lst.push_back(i);list<int>::iterator p=lst.begin(); list<int>::iterator p=lst.begin();while(p!=lst.end() ) lst.erase(p); while(p!=lst.end() ) p=lst.erase(p);(4) 字符a、b、c、d依次进入一个栈,按所有可能的次序出栈后组成一个长度是4的字符串,至多可以组成多少个不同的字符串?()A) 4 B) 14 C) 24 D) 16(5)设有如下定义的数组Q:const int m=20 ;T Q[m];//T为队列元素的类型Q存储一个环形队列。

quelen是队列中元素的个数,back 是实际队尾元素的位置,队列中第一个元素的实际位置是( )A) back+m-quelen B) back – quelenC) ( back+m – quelen +1) % m D) ( m – back +quelen) % m(6) C++标准模板库的“表”容器(list)是用双向链表实现的,对这种实现,下列叙述正确的是( )A) 元素的物理顺序与元素的逻辑顺序一定相同B) 一个表元素所占用的存储空间只用来存储表元素的值,不含其他附加信息C) 可以随机地访问元素D) 可以高效地进行插入和删除操作(7) 设一个长度为10的排好序的序列存储在数组int arr[10]中。

对一个给定的值k,用二分法查找与k相等的元素,若查找不成功,至少需要比较多少次?( )。

A) 3B) 4 C) 5D) 6(8) 设一棵树的度是4,其中度为0、1、2、3和4的结点个数分别是8、4、2、1和x,x是( ) 。

A) 4 B) 3 C) 2 D) 1(9) 下面关于二叉树的叙述正确的是( )。

A) 任何二叉树至少有一个结点B) 二叉树的度是2C) 在二叉树中,度为0的结点个数等于度为2的结点个数加1。

D) 在任何一棵完全二叉树中,没有度为1的结点。

(10) 一棵二叉树含有25个结点,这些结点要么是叶,要么是有两棵非空子的子树,此二叉树中有()个非叶结点。

A) 11 B) 12 C) 13 D) 14(11) 设二叉树根结点的层次为0,一棵深度(高度)为k的满二叉树和同样深度的完全二叉树分别有f个结点和c个结点,下列关系式错误的是()A) f ≥c B) c > f C) f = 2k+1-1 D) c ≤2k+1-1(12) 下列关于二叉搜索树的叙述,错误的是()。

A) 二叉搜索树可以是空二叉树B) 向二叉搜索树中插入一个结点,该结点的度一定是0。

C) 对二叉搜索树进行中序遍历,将得到结点键值的递增序列。

D) 向二叉搜索树中插入一个结点,树的高度一定增加1。

(13) 考虑一棵二叉树结点的先序、中序和后序序列,所有叶结点的先后顺序关系是( )A) 都不相同B) 完全相同C) 先序和中序相同,而与后序不同D) 中序和后序相同,而与先序不同(14) 设有森林F,与F对应的二叉树是B。

若已知F有m个非叶结点,B中有n个结点的右子树是空二叉树,对m和n,下列等式成立的是()A) m = n B) m = n - 1 C) m = n + 1 D) m =n - 2(15)考虑下列4种排序方法,不稳定的方法是()A) 直接插入排序B) 二分法插入排序C) 归并排序D) 快速排序二、填空题(共10 题,每题3分,计30 分)请将下列各题的答案填写在横线上(1)一个抽象数据类型由一组值的集合以及定义在这组值上的一组组成。

(2) 利用STL的向量容器vector定义二维向量vv如下:vector< vector<int> > vv ; // 二维向量vv执行循环语句:for ( int i = 1 ; i<=3 ; i++ ) vv.push_back( vector<int> (i , 2*i ) ) ;后,向量vv的元素vv[1]是_______________________(3) 对下列函数mystery ( int n ),参数n是2的正整数幂(n=2k , k=1 ,2 , 3 ,…),用参数n表示函数执行结束时的count 值:count=___________________________。

int mystery ( int n){int x = 2 , count = 0 ;while ( x < n ){x *= 2 ;count ++ ;}return count ;}(4) 设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后立即进入队列,若6个元素出队列顺序是e2,e5,e6,e4,e3,e1,在操作过程中,栈S的最大长度(size)是多少? ______________(5) 可以高效地在两端进行插入和删除操作的队列称为_____________队列。

(6) 广义表D=( (),(e),( a,(b,c,d) ) ),则:D的长度是_________, D的表头Head(D)是________ ,D的表尾Tail(D)是_______________(7) 设森林F有3棵树,第一、第二和第三棵树的结点个数分别是t1、t2和t3,与森林对应的二叉树根结点的左子树有___________ 个结点。

(8) 在一棵中序线索树中,一个结点p有两棵非空的子树,它的中序前驱结点的度至多是____________。

(9) 在n个结点的完全二叉树中,叶结点的个数是。

(10)对一棵二叉树进行先序和中序遍历的结果分别是先序序列: A D B G E F C中序序列: B G D A F E C则这棵二叉树根结点的左子女和右子女分别是_________和___________ 。

三、解答题(共 5 题,每题5分,计25 分)请按照题意解答下列各题。

(1) 函数func()对表alist进行什么操作?template<typename T>void func( list<T>& alist ){list<T>:: iterator iter = alist.begin() ;while ( iter != alist.end() ){alist.push_front( * iter ) ;alist.erase ( iter++) ; // 本句也可改用p=alist.erase(iter);}}(2) 设整型数组arr[]的长度为n,元素已按值递增的顺序排好序,函数Bsearch ()在数组中查找与给定值target相等的元素,若查找成功,返回元素在数组中的位置,否则返回-1。

实现代码如下:int Bsearch (int const *arr , int n , const int& target ){bool found = false ;int first = 0, last = n-1, m ;while ( first <= last && !found ){m = ( first + last ) / 2 ; // 二等分int mid = arr[m] ;if ( target == mid ) found = true ;elseif ( target > mid ) first = m ;else last = m ;}if ( found ) return m ; // 查找成功,返回元素在数组中的位置else return -1 ; // 查找失败,返回-1}无任是查找成功或查找失败,函数是否总能正确地工作?如果不能,请举例说明。

(3)删除一棵二叉搜索树中的一个结点,然后再插入这个结点,所得的结果二叉树是否与原先的二叉树一定相同?举例说明你的结论。

(4) 设被排序的初始序列为{ 26, 28, 41, 57, 14, 10, 35, 22 },用快速排序方法进行排序,以第一个元素26作为划分的基准,写成第一次划分后所得到的两个序列。

//本题不宜作为考题,因为划分的具体算法不同会得到不同结果。

(5) 假设一则电文中仅出现6个不同的字母a,b,c,d,e和f,每个字母在电文中出现的频率分别是3,10,12,7,4和20。

试为这6个字母设计哈夫曼编码。

四.编程题( 共2题,第(1)题5 分,第(2)题10 分,计15 分)(1)对下列单链表写一个递归函数,反向输出单链表中的结点,即依次输出a n ,a n-1,……,a 2,a 1 单链表的结点类型定义如下: struct node {int data ; node* next ; };函数的原型: void Print( Node* head); // 函数写在下面(2) 若序列 { h 0, h 1, h 2,...... , h n-1 } 中的元素满足下列关系:h i ≥ h 2i+1 并且 h i ≥ h 2i+2 ( i = 0, 1 , 2 , .... , ⎥⎦⎥⎢⎣⎢-22n ) 则该序列是一个堆(heap)。

相关文档
最新文档