《算法与数据结构》模拟试题3--答案

合集下载

算法与数据结构试题与答案

算法与数据结构试题与答案

算法与数据结构试题与答案简介算法与数据结构是计算机科学中最重要的基础课程之一。

本文档将提供一系列常见的算法与数据结构试题,并附上答案进行解析。

这些试题适用于计算机科学、软件工程、数据科学等专业的学生,也适用于在求职面试中涉及到算法与数据结构的岗位。

算法1. 寻找最小值请编写一个函数,接收一个整数数组作为参数,返回数组中的最小值。

解答function findMin(arr) {let min = arr[0];for (let i = 1; i < arr.length; i++) {if (arr[i] < min) {min = arr[i];}}return min;}// 测试样例let arr = [8, 6, 7, 5, 3, 0, 9];console.log(findMin(arr)); // 02. 冒泡排序请编写一个函数,接收一个整数数组作为参数,实现冒泡排序算法,并返回排序后的数组。

冒泡排序的基本思想是从头到尾比较相邻两个元素的大小,并交换它们的位置,直到整个数组有序为止。

解答function bubbleSort(arr) {for (let i = 0; i < arr.length - 1; i++) {for (let j = 0; j < arr.length - i - 1; j++) {if (arr[j] > arr[j + 1]) {let temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}return arr;}// 测试样例let arr = [8, 6, 7, 5, 3, 0, 9];console.log(bubbleSort(arr)); // [0, 3, 5, 6, 7, 8, 9]3. 快速排序请编写一个函数,接收一个整数数组作为参数,实现快速排序算法,并返回排序后的数组。

(完整版),算法与数据结构题库及答案,推荐文档

(完整版),算法与数据结构题库及答案,推荐文档

A 问题规模是 n2
B 问题规模与 n2 成正比
C 执行时间等于 n2
D 执行时间与 n2 成正比
2、关于数据结构的描述,不正确的是( )。
A 数据结构相同,对应的存储结构也相同。
B 数据结构涉及数据的逻辑结构、存储结构和施加其上的操作等三个方面。
C 数据结构操作的实现与存储结构有关。
D 定义逻辑结构时可不考虑存储结构。
D O(nlog2n)
28、n 个结点的线索二叉树中,线索的数目是( )。
A n-1
B n+1
C 2n
D 2n-1
29、若数据元素序列{11,12,13,7,8,9,23,4,5}是采用下列排序方法之一得到的第二趟排序
后的结果,则该排序方法只能是( )。
A 插入排序 B 选择排序 C 交换排序 D 归并排序
A. n+1
B. n
C. n-1
11. 一个递归算法必须包括__________。
D. n-2
A. 递归部分 B. 结束条件和递归部分 C. 迭代部分 D. 结束条件和迭代部分
12. 从逻辑上看可以把数据结构分为__________两大类。
第 1 页,共 8 页
A.动态结构、静态结构
B.顺序结构、链式结构
二、填空题
1、算法效率的度量分为 事后测量

事前估 两种。
2、算法是一个有穷的指令集,它为解决某一特定任务规定了一个运算序列。它应当具有
输入、输出、确定性、 有穷性
可行性等特性。
3、一个抽象数据类型 ADT 包括
数据操作 和 对象
两个部分。
4、队列的插入操作是在 队尾 进行,删除操作是在 队头
进行。

数据结构与算法-模拟试题3

数据结构与算法-模拟试题3

数据结构与算法-模拟试题3一、单项选择题(每个题只有一个答案是正确的,请将正确的答案填写到括号内。

本题共15个小题,每小题3分,共45分)1. 下面的说法正确的是()。

A.数据结构可以分成逻辑结构和线性结构B.数据的逻辑结构是指数据及其逻辑结构在计算机中的表示C.从逻辑结构角度数据结构可以分为集合、线性结构、树结构和图结构四类D.数据的存储结构是从具体问题抽象出来的数学模型2. 线性表采用链式存储时,存储空间()。

A.必须是不连续的B.连续与否均可C.必须是连续的D.和头结点的存储地址相连续3.顺序循环队列容量为20,队头表示第一个元素的位置,队尾表示最后一个元素的下一个位置,当队头为12,队尾为5的时候,队列中共有()个元素。

A.15B.14C.12D.134. 设计一个判别表达式中括号是否配对的算法,采用()数据结构最佳。

A. 顺序表B. 链表C. 队列D. 栈5. 下列有关串的操作中,()不是串的常用操作。

A.连接(concat)B.求子串(substring)C.插入(insert)D.求长度(length)6. 广义表GL=(a, (a))的表头是()。

A. aB. (a)C. ()D. ((a))7.二叉树高度为k,第1层到第k-1层每层都是满的,第k层结点数不满,但该层结点从左到右满放,则该二叉树为()。

A. 斜树B. 有序树C. 满二叉树D. 完全二叉树8.将一棵树转换为二叉树后,该转换后的二叉树的特点是()。

A. 没有右子树B. 没有左子树C. 左右子树都有D. 每层上只有一个结点9. 关于有向图的的说法错误的是()。

A. 有向图中顶点v的入度(indegree)是以顶点v为终点(弧头)的弧的数目B. 有向图中顶点v的出度(outdegree)是以顶点v为始点(弧尾)的弧的数目C. 有向图中各顶点的入度之和等于各顶点的出度之和D. 有向图中各顶点入度之和等于弧数e的2倍10. 在无向图的邻接表存储结构中插入一个顶点和一条边,不需要进行的操作是()。

数据结构与算法模考试题(含参考答案)

数据结构与算法模考试题(含参考答案)

数据结构与算法模考试题(含参考答案)一、单选题(共100题,每题1分,共100分)1、某公司秘书小莉经常需要用Word编辑中文公文,她希望所录入的正文都能够段首空两个字符,最简捷的操作方法是:A、在每次编辑公文前,先将“正文”样式修改为“首行缩进 2 字符”。

B、每次编辑公文时,先输入内容然后选中所有正文文本将其设为“首行缩进 2 字符”。

C、在一个空白文档中将“正文”样式修改为“首行缩进 2 字符”,然后将当前样式集设为默认值。

D、将一个“正文”样式为“首行缩进 2 字符”正确答案:C2、现代微型计算机中所采用的电子元器件是:A、大规模和超大规模集成电路B、电子管C、晶体管D、小规模集成电路正确答案:A3、图书馆管理系统中实体图书和实体借阅人之间的联系是A、1:1B、1:NC、M:ND、N:1正确答案:C4、计算机网络最突出的优点是:A、资源共享和快速传输信息B、高精度计算和收发邮件C、运算速度快和快速传输信息D、存储容量大和高精度正确答案:A5、在 Excel 工作表单元格中输入公式时,F$2 的单元格引用方式称为:A、绝对地址引用B、交叉地址引用C、混合地址引用D、相对地址引用正确答案:C6、域名代码 MIL 表示:A、政府机关B、国际组织C、商业组织D、军事部门正确答案:D7、以下对 Excel 高级筛选功能,说法正确的是:A、高级筛选之前必须对数据进行排序B、利用“数据”选项卡中的“排序和筛选”组内的“筛选”命令可进行高级筛选C、高级筛选通常需要在工作表中设置条件区域D、高级筛选就是自定义筛选第 6 组正确答案:C8、软件工程的三要素是A、方法、工具和过程B、方法、工具和文档第 47 组C、方法、工具和环境D、方法、平台和管理正确答案:A9、字长是计算机的一个重要指标,在工作频率不变和 CPU 体系结构相似的前提下,字长与计算机性能的关系是:A、字长越长,计算机的数据处理速度越快B、字长越短,计算机的数据处理速度越快C、字长表示计算机的存储容量大小,字长越长计算机的读取速度越快D、字长越短,表示计算机的并行能力越强正确答案:A10、下面描述错误的是A、类中包含数据(属性)和方法(或操作)B、类中包含对数据的操作(方法)C、类是对象的实例D、类具有抽象性第 49 组正确答案:C11、在数据库的三级模式中,可以有任意多个A、模式B、内模式(物理模式)C、外模式(用户模式)正确答案:C12、以下关于计算机病毒的说法,不正确的是:A、计算机病毒一般会寄生在其他程序中B、计算机病毒一般会传染其他文件C、计算机病毒一般会具有自愈性D、计算机病毒一般会具有潜伏性正确答案:C13、CPU 的参数如 2800MHz,指的是:A、CPU 的速度B、CPU 的大小C、CPU 的时钟主频D、CPU 的字长正确答案:C14、设栈与队列初始状态为空。

算法与数据结构习题及参考答案

算法与数据结构习题及参考答案

算法与数据结构习题及参考答案一、选择题1. 在算法分析中,时间复杂度表示的是:A. 算法执行的时间B. 算法的运行速度C. 算法执行所需的操作次数D. 算法的内存消耗答案:C2. 哪种数据结构可以在常数时间内完成插入和删除操作?A. 数组B. 栈C. 队列D. 链表答案:B3. 单链表的逆置可以使用哪种算法实现?A. 冒泡排序B. 归并排序C. 快速排序D. 双指针法答案:D4. 常用的查找算法中,哪种算法的时间复杂度始终为O(log n)?A. 顺序查找B. 二分查找C. 广度优先搜索D. 深度优先搜索答案:B5. 哪种排序算法的时间复杂度最坏情况下仍为O(n log n)?A. 冒泡排序B. 插入排序C. 快速排序D. 堆排序答案:C二、填空题1. 下面哪个数据结构先进先出?A. 栈B. 队列C. 堆D. 链表答案:B2. 在快速排序的基本步骤中,需要选取一个元素作为________。

答案:枢纽元素3. 广度优先搜索使用的数据结构是________。

答案:队列4. 二分查找是基于_________的。

答案:有序数组5. 哈希表的查找时间复杂度为_________。

答案:O(1)三、解答题1. 请简要说明冒泡排序算法的原理及时间复杂度。

答:冒泡排序是一种简单直观的排序算法。

它的基本思想是通过相邻元素之间的比较和交换来将最大(或最小)的元素逐渐“冒泡”到数列的一端。

冒泡排序的过程如下:1)比较相邻的元素,如果前面的元素大于后面的元素,则交换它们的位置;2)对每一对相邻元素重复进行比较和交换,直到最后一对元素;3)针对剩下的元素重复上述步骤,直到整个数列有序。

冒泡排序的时间复杂度为O(n^2),其中n为待排序数列的长度。

在最坏情况下,冒泡排序需要进行n-1次比较和交换操作,因此时间复杂度为O(n^2)。

在最好情况下,如果待排序数列已经有序,冒泡排序只需进行n-1次比较,没有交换操作,时间复杂度为O(n)。

数据结构与算法同步训练模拟试题及答案解析

数据结构与算法同步训练模拟试题及答案解析

数据结构与算法同步训练模拟试题及答案解析(1/43)选择题第1题下列叙述中正确的是()。

A.循环队列是队列的一种链式存储结构B.循环队列是队列的一种顺序的存储结构C.循环队列是非线性结构D.循环队列是一种逻辑结构下一题(2/43)选择题第2题算法的有穷性是指()。

A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用上一题下一题(3/43)选择题第3题算法的空间复杂度是指()。

A.算法在执行过程中所需要的计算机存储空间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数上一题下一题(4/43)选择题第4题定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。

A.-369B.369C.0.369D.整数集合{1,2,3,4,5}上一题下一题(5/43)选择题第5题下列叙述正确的是()。

A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对上一题下一题(6/43)选择题第6题下列叙述中正确的是()。

A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构C.循环链表是非线性结构D.双向链表是非线性结构上一题下一题(7/43)选择题第7题下列关于线性链表的叙述中,正确的是()。

A.各数据结点的存储空间可以不连续,但他们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间不需连续C.进行插入数据与删除数据时,不需要异动表中的元素D.以上说法均不对上一题下一题(8/43)选择题第8题下列叙述中正确的是()。

A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间上一题下一题(9/43)选择题第9题下列叙述中正确的是()。

数据结构 模拟试题3 参考答案

数据结构 模拟试题3 参考答案

数据结构模拟试题3 参考答案一、填空题1.设计良好的程序结构;函数名及变量名的命名规范化;使用合理的注释2.O(log10N)3.只存储非零元素(三元组表,十字链表)4.(rear+m-qulen+2) mod (m+1)5.(13,38,28,50,77,66,50,98)6.return s[i]-t[i]return strlen(s)-strlen(t)7.p=head->nextp=p->nextreturn length二、解答:1. Huffman算法:求Huffman树(带权路径长度最短的二叉树)Dijkstra算法:求图中从某个源点到其余各顶点的最短路径Prim算法:求最小生成树Kruskal算法:求最小生成树2. 选择排序不稳定举例:{256256*512128}i=1{128256*512256}i=2{128256*512256}i=3{128256*256512}256和256*在排序前后相对位置发生变化,所以说选择排序是不稳定的。

3.4.举例:5.Hash表如下查找成功情况下的平均查找长度为(3+4+4+4+1+2+2+1+1+2)/10=2.46.快速排序,堆排序,归并排序以归并排序说明:假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2个长度为2或1的有序子序列;再两两归并,……,如此重复,直至得到一个长度为n的有序序列为止.举例如下:三、解答:typedef struct BiTNode{TelemType data;struct BiTNode *lchild, *rchild;}BiTNode,*BiTree;Status SearchBST(BiTree T,KeyType key,BiTree f,BiTree &p){if(!T){p=f;return FALSE;}else if EQ(key,T->data.key){p=T;return TRUE;}else if LT(key,T-> data.key) SearchBST(T->lchild,key,T,p);else if SearchBST(T->rchild,key,T,p);}Staus InsertBST(BiTree &T,ElemType e){if(!SearchBST(T,e.key,NULL,p){s=(BiTree)malloc(sizeof(BiTNode));s->data=e;s->lchild=s->rchild=NULL;if(!p) T=s;else if LT(e.key,p->data.key)p->lchild=s;else p->rchild=s;return TRUE;}else return FALSE;}从空树出发,经过一系列的查找插入操作之后,可生成一棵二叉树. main(){BiTree BiT=NULL;int elememt;scanf(“%d”,&element);while(element!=9999){InsertBST(BiT,element);scanf(“%d”,&element);}}typedef struct BiTNode{TelemType data;struct BiTNode *left, *right;int bal;}BiTNode,*BiTree;int computbal(BiTree bt){int hl, hr, max;if(bt==NULL) return(0);else {hl=computbal(bt->LChild);/* 求左子树的深度 */hr=computbal(bt->RChild);/* 求右子树的深度 */bt->bal=hl-hr;/*求出平衡因子*/max=hl>hr?hl:hr;/* 得到左、右子树深度较大者*/return(max+1);/* 返回树的深度 */}}void BFSTraverse(Graph G,Status (*visit)(int v)){for (v=0;v<G.vexnum;++v) visited[v]=FALSE;InitQueue(Q);for(v=0;v<G.vexnum;++v)if(!visited[v]){Visit(v);visited[v]=TRUE;EnQueue(Q,v);while(!QueueEmpty(Q)){DeQueue(Q,u);for(w=FirstAdjVex(G,u);w;w=NextAdjVex(G,u,w))if(!Visited[w]){Visit(w);visited[w]=TRUE;EnQueue(Q,w);}}}}。

数据结构试卷3答案

数据结构试卷3答案

数据结构试题3参考答案一、单项选择题(本大题共15小题,每小题2分,共30分) 1.D 2.B3.C4.B5.D6.A 7.C8,D9,A10.C11.D 12.C13.D 14.C15.B二、填空题(本大题共10小题,每小题2分,共20分) 16.存储(或存储结构)17.p ->next ->next18.进栈和退栈.进栈和退栈19.12 12 2020.A[4][8] 21.384 22.abefcdg 23.快速排序、堆排序、希尔排序24.2.2 25.多关键字多关键字三、解答题(本大题共4小题,每小题5分,共20分) 26.(1)对第一结点的操作和其他结点一样,无须特殊处理。

((2)空表和非空表的处理相统一了。

)空表和非空表的处理相统一了。

27.28.该图的图形为:该图的图形为:深度优先遍历序列为:深度优先遍历序列为:abdce abdce广度优先遍历序列为:广度优先遍历序列为:abedc abedc2929..(1)对关键字3535、、2020、、33和48进行查找的比较次数为3、2、1、1;1、1;(2)平均查找长度(2)平均查找长度59521123=++++=ASL四、算法阅读题(本大题共4小题,每小题5分,共20分) 30. ①S1=S1->next ②s2=s2->next ③s2(或s2!=NULL 或s2&&!s1) ④s1(或s1!=NULL 或s1&&!s2) ⑤return 0 31.(1)查询链表的尾结点)查询链表的尾结点(2)将第一个结点链接到链表的尾部,作为新的尾结点)将第一个结点链接到链表的尾部,作为新的尾结点 (3)返回的线性表为(a 2,a 3,…,a n ,a 1)32. ①(i+1)%2(或1-i) ②Q->rear[i] ③(Q->rear[i]+)%Maxsize 33.(1)Leafhead F H G D ∧(2)中序遍历二叉树,按遍历序列中叶子结点数据域的值构建一个以Leafhead为头指针的逆序单链表(或按二叉树中叶子结点数据自右至左链接成一个链表)。

算法与数据结构试题及答案

算法与数据结构试题及答案

数据结构模拟试题...一、简答题15分,每小题3分1.简要说明算法与程序的区别;2.在哈希表中,发生冲突的可能性与哪些因素有关为什么3.4.说明在图的遍历中,设置访问标志数组的作用;5.说明以下三个概念的关系:头指针,头结点,首元素结点;6.在一般的顺序队列中,什么是假溢出怎样解决假溢出问题7.二、判断题10分,每小题1分正确在括号内打√,错误打×1广义表 a , b, c 的表头是 a , b,表尾是 c ;2在哈夫曼树中,权值最小的结点离根结点最近;3基数排序是高位优先排序法;4在平衡二叉树中,任意结点左右子树的高度差绝对值不超过1;5在单链表中,给定任一结点的地址p,则可用下述语句将新结点s插入结点p的后面:p->next = s; s->next = p->next;6抽象数据类型ADT包括定义和实现两方面,其中定义是独立于实现的,定义仅给出一个ADT的逻辑特性,不必考虑如何在计算机中实现;7数组元素的下标值越大,存取时间越长;8用邻接矩阵法存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小只与图中结点个数有关,而与图的边数无关;9拓扑排序是按AOE网中每个结点事件的最早发生时间对结点进行排序;10长度为1的串等价于一个字符型常量;三、单项选择题10分, 每小题1分1.排序时扫描待排序记录序列,顺次比较相邻的两个元素的大小,逆序时就交换位置;这是哪种排序方法的基本思想A、堆排序B、直接插入排序C、快速排序D、冒泡排序2.已知一个有向图的邻接矩阵表示,要删除所有从第i个结点发出的边,应该:A将邻接矩阵的第i行删除 B将邻接矩阵的第i行元素全部置为0C将邻接矩阵的第i列删除 D将邻接矩阵的第i列元素全部置为03.有一个含头结点的双向循环链表,头指针为head, 则其为空的条件是:A. head->priro==NULLB. head->next==NULLC. head->next==headD. head->next-> priro==NULL4. 在顺序表 3, 6, 8, 10, 12, 15, 16, 18, 21, 25, 30 中,用折半法查找关键码值11,所需的关键码比较次数为:A 2B 3C 4D 55. 以下哪一个不是队列的基本运算A从队尾插入一个新元素 B从队列中删除第i个元素C判断一个队列是否为空 D读取队头元素的值6. 在长度为n的顺序表的第i个位置上插入一个元素1≤ i ≤n+1,元素的移动次数为:A n – i + 1B n – iC iD i – 17.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为:A 顺序表B 用头指针表示的循环单链表C 用尾指针表示的循环单链表D 单链表8.对包含n个元素的哈希表进行查找,平均查找长度为:A Olog2n B On C Onlog2n D 不直接依赖于n9.将一棵有100个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点编号为1,则编号最大的非叶结点的编号为:A、48B、49C、50D、5110.某二叉树结点的中序序列为A、B、C、D、E、F、G,后序序列为B、D、C、A、F、G、E,则其左子树中结点数目为:A3 B2 C4 D5四、填空题10分,每空1分1.填空完成下面一趟快速排序算法:int QKPass RecordType r , int low, int high{ x = r low ;while low < high{while low < high && r . key >=high - -;if low < high{ r = r high ; low++; }while low < high && r . key < x. keylow++;if low < high{ r = r low ; high--; }}r low = x; return low ;}2. 假设用循环单链表实现队列,若队列非空,且队尾指针为R, 则将新结点S加入队列时,需执行下面语句:;;R=S;3.通常是以算法执行所耗费的和所占用的来判断一个算法的优劣;4.已知一个3行、4列的二维数组A各维下标均从1开始,如果按“以列为主”的顺序存储,则排在第8个位置的元素是:5.高度为h的完全二叉树最少有个结点;五、构造题20 分1.4分已知数据结构DS的定义如下,请给出其逻辑结构图示;DS = D, RD = { a, b, c, d, e, f, g }R = { T }T = { <a, b>, <a, g>, <b, g>, <c, b>, <d, c>, <d, f>,<e, d>, <f, a>, <f, e>, <g, c>, <g, d>, <g, f> }2.6分对以下关键字序列建立哈希表:SUN, MON, TUE, WED, THU, FRI, SAT,哈希函数为HK =K中最后一个字母在字母表中的序号MOD 7;用线性探测法处理冲突,要求构造一个装填因子为的哈希表,并计算出在等概率情况下查找成功的平均查找长度;3.6分将关键字序列3,26,12,61,38,40,97,75,53, 87调整为大根堆;4.4分已知权值集合为:{ 5,7,2,3,6,9 },要求给出哈夫曼树,并计算其带权路径长度WPL;六、算法分析题10分阅读下面程序,并回答有关问题;其中BSTree为用二叉链表表示的二叉排序树类型;(1)简要说明程序功能;5分(2)n个结点的满二叉树的深度h是多少(3)3分(4)假设二叉排序树bst是有n个结点的满二叉树,给出算法的时间复杂度;2分int Proc BSTree bst, KeyType K{ BSTree f, q, s;s=BSTreemallocsizeofBSTNode;s-> key = K; s-> lchild = NULL; s-> rchild = NULL;if bst == NULL { bst = s; return 1; }f = NULL; q = bst;while q = NULL{ if K < q -> key{ f = q; q = q -> lchild; }else{ f = q; q = q -> rchild; }}if K < f -> key f -> lchild = s;else f -> rchild = s;return 1;}七、算法设计题25分1.已知一个带头结点的整数单链表L,要求将其拆分为一个正整数单链表L1和一个负整数单链表L2;9分2.无向图采用邻接表存储结构,编写算法输出图中各连通分量的结点序列;8分3.编写一个建立二叉树的算法,要求采用二叉链表存储结构;8分2002级数据结构试卷参考答案与评分标准一、简答题15分,每小题3分8.算法是解决特定问题的操作序列,可以用多种方式描述;程序是算法在计算机中的实现,与具体的计算机语言有关;9.主要与哈希函数、装填因子α有关;如果用哈希函数计算的地址分布均匀,则冲突的可能性较小,如果装填因子α较小,则哈希表较稀疏,发生冲突的可能性较小;10.图中结点可能有多个前驱,设置访问标志数组主要是为了避免重复访问同一个结点;11.头指针指向头结点,头结点的后继域指向首元素结点;12.当队尾到达数组最后一个单元时,就认为队满,但此时数组前面可能还有空单元,因此叫假溢出;解决的方法是采用循环队列,即令最后一个单元的后继是第一个单元;二、判断题10分,每小题1分1√ 2× 3× 4√ 5×6√ 7× 8√ 9× 10×三、单项选择题10分, 每小题1分1. D 2. B 3. C 4. C 5. B6. A 7. C 8. D 9. C 10.C四、填空题10分,每空1分1. high low low high2. S->next=R->next ; R->next=S ;3.时间空间 4. A2, 3 5. 2h-1五、构造题20 分1.4分0 1 2 3 4 5 6 7 8 9SUN MON THU FRI WED TUE SAT2.6分ASLsucc= 1×4 + 2×2 + 3 / 7 = 11 / 73.6分4.4分已知权值集合为:{ 5,7,2,3,6,9 },要求给出哈夫曼树,并计算其带权路径长度WPL;WPL = 2× 9 + 6 + 7 + 3×5 + 4× 2 + 3 = 79六、算法分析题10分解:(1)在二叉排序树中插入关键字为K的结点(2)h = log2 n+1 或 h = log2n + 1 方括号表示向下取整(3)O log2 n+1 或 O log2n七、算法设计题25分答案略。

算法与数据结构试题及答案

算法与数据结构试题及答案

数据结构试卷(一)一、单选题(每题2 分,共20分)1.栈和队列的共同特点是()。

A.只允许在端点处插入和删除元素B。

都是先进后出C.都是先进先出D。

没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针 B。

头、尾指针都要修改C。

仅修改尾指针 D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A。

队列B。

栈 C. 线性表D。

二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。

A.688 B.678 C.692 D.6965.树最适合用来表示( )。

A。

有序数据元素B。

无序数据元素C。

元素之间具有分支层次关系的数据D。

元素之间无联系的数据6.二叉树的第k层的结点数最多为()。

A.2k-1 B。

2K+1 C.2K—1 D. 2k—17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A。

1,2,3 B。

9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A。

O(1) B. O(n) C。

O(1og2n) D。

O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有( )个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

A。

5 B.6 C.7 D。

8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:_________、_________、_________和_________.2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。

《数据结构与算法》试卷与答案3

《数据结构与算法》试卷与答案3

广州大学学年第学期考试卷课程数据结构与算法考试形式(闭卷,考试)信息学院系专业级班学号:姓名:一、填空题:(每格2分,共20分)1.在双向循环链表中,设指针p指向待删除的结点,则删除结点p需执行的语句为_________________ 。

2.由a, b, c三个结点构成的二叉树,共有种不同的结构。

3.设根结点处在第一层,那么具有n个结点的完全二叉树,其高度为。

4.克鲁斯卡尔的时间复杂度为;它对图较为适合。

5.给定表(55,63,44,38,75,80,31,56),用筛选法建立初始堆,则初始堆表为。

6.已知二叉树中叶子数为50,仅有一个孩子的结点数为30,则总结点数为。

7.已知8个数据元素由(35,75,40,15,20,55,95,65)按照依次插入结点的方法生成一棵二叉排序树后,最后两层上的结点总数为8.假设有n个关键字,它们具有相同的Hash函数值,用线性探测方法解决冲突,把这n个关键字散列到大小为n的地址空间中,共计需要做次插入和探测操作。

9.如果含n个顶点的图形成一个环,则它有颗生成树。

10.对有17个元素的有序表A[1..17]作二分查找,在查找其等于A[8]的元素时,被比较的元素的下标依次是。

二、单项选择题(每题1分,共10分)1.()线性表采用链式存储时,其地址是()A.必须是连续的B.一定是不连续的C.部分地址必须是连续的D.连续与否均可以2.()串的逻辑结构与()的逻辑结构不同A.线性表B.栈C.队列D.树3.()设一数列的顺序为1,2,3,4,5,6,通过栈结构不可能排成的顺序数列为A.3,2,5,6,4,1B.1,5,4,6,2,3C.2,4,3,5,1,6D.4,5,3,6,2,14.()设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一个元素,其存储地址为1,每元素占一个存储空间,则a85的地址为A.13B.33C.18D.405.()二叉树在线索化后,仍不能有效求解的问题是A.前(先)序线索二叉树中求前(先)序后继;B.中序线索二叉树中求中序后继;C.中序线索二叉树中求中序前趋;D.后序线索二叉树中求后序后继。

《数据结构》模拟试题综合测试题带答案 (3)

《数据结构》模拟试题综合测试题带答案 (3)

《数据结构》模拟试题03一、单项选择题(每题 2 分,共30分)1.算法指的是( )A .计算机程序B .解决问题的计算方法C .排序算法D .解决问题的有限运算序列 2.线性表采用链式存储时,结点的存储地址( ) A .必须是不连续的 B .连续与否均可 C .必须是连续的D .和头结点的存储地址相连续3.将长度为n 的单链表链接在长度为m 的单链表之后的算法的时间复杂度为( ) A .O (1) B .O (n ) C .O (m ) D .O (m+n ) 4.由两个栈共享一个向量空间的好处是:( ) A .减少存取时间,降低下溢发生的机率 B .节省存储空间,降低上溢发生的机率 C .减少存取时间,降低上溢发生的机率 D .节省存储空间,降低下溢发生的机率5.设数组data[m]作为循环队列SQ 的存储空间,front 为队头指针,rear 为队尾指针,则执行出队操作后其头指针front 值为( )A .front=front+1B .front=(front+1)%(m-1)C .front=(front-1)%mD .front=(front+1)%m 6.如下陈述中正确的是( )A .串是一种特殊的线性表B .串的长度必须大于零C .串中元素只能是字母D .空串就是空白串7.若目标串的长度为n ,模式串的长度为[n/3],则执行模式匹配算法时,在最坏情况下的时间复杂度是( )A .O (n3) B .O (n ) C .O (n2) D .O (n3)8.一个非空广义表的表头( )A .不可能是子表B .只能是子表C .只能是原子D .可以是子表或原子 9.假设以带行表的三元组表表示稀疏矩阵,则和下列行表对应的稀疏矩阵是( )5A.08067000000050400000--⎡⎣⎢⎢⎢⎢⎢⎢⎤⎦⎥⎥⎥⎥⎥⎥B.08067000504000000300--⎡⎣⎢⎢⎢⎢⎢⎢⎤⎦⎥⎥⎥⎥⎥⎥C.08060000020050400000--⎡⎣⎢⎢⎢⎢⎢⎢⎤⎦⎥⎥⎥⎥⎥⎥D.08060000700050400300--⎡⎣⎢⎢⎢⎢⎢⎢⎤⎦⎥⎥⎥⎥⎥⎥10.在一棵度为3的树中,度为3的结点个数为2,度为2 的结点个数为1,则度为0的结点个数为( ) A.4 B.5 C.6 D.711.在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为( )A.e B.2e C.n2-e D.n2-2e12.假设一个有n个顶点和e条弧的有向图用邻接表表示,则删除与某个顶点vi相关的所有弧的时间复杂度是( )A.O(n) B.O(e) C.O(n+e) D.O(n*e)13.用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况如下:20,15,21,25,47,27,68,35,8415,20,21,25,35,27,47,68,8415,20,21,25,27,35,47,68,84则所采用的排序方法是()A.选择排序B.希尔排序C.归并排序D.快速排序14.适于对动态查找表进行高效率查找的组织结构是()A.有序表B.分块有序表C.三叉排序树D.线性链表15.不定长文件是指()A.文件的长度不固定B.记录的长度不固定C.字段的长度不固定D.关键字项的长度不固定二、填空题(每题2分,共20分)1.数据的逻辑结构是从逻辑关系上描述数据,它与数据的无关,是独立于计算机的。

数据结构模拟试题与答案3

数据结构模拟试题与答案3

《数据结构》模拟试题3一、单项选择题1.带头结点的单向链表为空的判断条件是()(设头指针为head)。

A.head = =NULL B.head!=NULLC.head->next= =head D.head->next= =NULL2.非空的单向循环链表的尾结点满足()(设头指针为head,指针p指向尾结点)。

A.p->next = =NULL B.p= =NULL C.p= =head D.p->next= =head3.算法的时间复杂度与()有关。

A.所使用的计算机B.计算机的操作系统C.算法本身D.数据结构4.设有一个长度为n的顺序表,要删除第i个元素需移动元素的个数为()。

A.n-i+1 B.n-i C.n-i-1 D.i5.在一个单链表中p所指结点之后插入一个s所指的结点时,可执行()。

A.p=s→next B.p→next=s→next;C.s→next=p→next; p→next=s; D.p→next= s; s→next= p→next6.在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为()。

A.r=f→next; B.r=r→next; C.f=f→next; D.f=r→next;7.元素1,3,5,7按顺序依次进栈,则该栈的不可能输出序列是()(进栈出栈可以交替进行)。

A.7,5,3,1 B.7,5,1,3C.3,1,7,5 D.1,3,5,78.在C语言中,顺序存储长度为3的字符串,需要占用()个字节。

A.4 B.3 C.6 D.129.在一棵二叉树中,若编号为i的结点存在左孩子,则左孩子的顺序编号为()。

A.2i B.2i-1 C.2i+1 D.2i+210.一棵具有35个结点的完全二叉树,最后一层有()个结点。

A.4 B.6 C.16 D.811.在一个无向图中,所有顶点的度数之和等于边数的()倍。

A.3 B.2 C.2.5 D.1.512.已知如图3所示的一个图,若从顶点V1出发,按广度优先法进行遍历,则可能得到的一种顶点序列为()。

数据结构与算法考试模拟题+参考答案

数据结构与算法考试模拟题+参考答案

数据结构与算法考试模拟题+参考答案一、单选题(共100题,每题1分,共100分)1、某企业为了组建内部办公网络,需要具备的设备是:A、大容量硬盘B、路由器C、DVD 光盘D、投影仪正确答案:B2、计算机指令由两部分组成,它们是:A、操作数和结果B、数据和字符C、运算符和运算数D、操作码和操作数正确答案:D3、在 2017 年的某一天,使用 Excel 2010 输入日期,并显示为“2017 年 2 月 1 日”,最快捷的操作方法是:A、输入“2017/2/1”,并设置格式B、输入“2/1”,并设置格式C、输入“17/2/1”,并设置格式D、直接输入“17/2/1”即可正确答案:B4、学校规定一个年级的所有班配备一名辅导员,则实体班级与实体辅导员之间的联系是A、多对多B、多对一C、一对一D、一对多正确答案:B5、设栈与队列初始状态为空。

将元素A,B,C,D,E,F,G,H 依次轮流入栈和入队,然后依次轮流退队和出栈,则输出序列为A、B,G,D,E,F,C,H,AB、G,B,E,D,C,F,A,HC、D,C,B,A,E,F,G,HD、A,B,C,D,H,G,F,E正确答案:A6、某二叉树的中序遍历序列为 CBADE ,后序遍历序列为 CBEDA ,则前序遍历序列为A、ABCDEB、CBEDAC、CBADED、EDCBA正确答案:A7、在 Word 文档中,不可直接操作的是:A、录制屏幕操作视频B、插入 Excel 图表C、插入 SmartArtD、屏幕截图第 6 组正确答案:A8、Internet 的四层结构分别是:A、物理层、数据链路层、网络层和传输层B、网络接口层、网络层、传输层和应用层C、应用层、表示层、传输层和网络层D、应用层、传输层、通信子网层和物理层正确答案:B9、树的度为 3,且有 9 个度为 3 的结点,5 个度为 1 的结点,但没有度为 2 的结点。

则该树中的叶子结点数为A、33B、18C、19D、32正确答案:C10、设栈的顺序存储空间为 S(1:m),初始状态为 top=m+1。

算法与数据结构试题及答案

算法与数据结构试题及答案

算法与数据结构试题及答案一、算法试题1. 请解释什么是算法?算法是一系列确定的步骤,用于解决问题或执行特定任务的方法。

2. 请列举几种常见的算法分类。

- 搜索算法:如二分搜索、广度优先搜索、深度优先搜索。

- 排序算法:如冒泡排序、插入排序、快速排序。

- 图算法:如最短路径算法、最小生成树算法。

- 字符串匹配算法:如KMP算法、Boyer-Moore算法。

3. 请描述递归算法的特点及适用场景。

递归算法是指在解决问题时,将大问题划分成一个或多个与原问题类似但规模减小的子问题,并通过递归调用这些子问题来解决原问题。

递归算法的特点包括简洁,易于理解和实现,但可能存在性能上的问题。

适用场景包括树结构的问题、分治算法等。

4. 请解释时间复杂度和空间复杂度的概念。

- 时间复杂度是指算法执行所需要的时间,通常用大O符号表示。

表示算法运行时间与问题规模的增长率之间的关系。

- 空间复杂度是指算法在执行过程中所需的额外空间,通常也用大O符号表示。

表示算法所需的空间与问题规模的增长率之间的关系。

二、数据结构试题1. 请解释什么是数据结构?数据结构是指为组织和存储数据而设计的一种特定方式。

它定义了数据的逻辑关系和操作方法。

2. 请列举几种常见的数据结构。

- 数组:一种连续存储数据的线性数据结构。

- 栈:一种具有后进先出(LIFO)特性的线性数据结构。

- 队列:一种具有先进先出(FIFO)特性的线性数据结构。

- 链表:一种通过指针连接各个节点的数据结构。

- 树:一种由节点和边组成的非线性数据结构。

3. 请解释树的常见术语:节点、根节点、叶子节点、父节点、子节点、深度、高度。

- 节点:树中的基本元素,包含数据和指向其他节点的指针。

- 根节点:树的顶部节点,没有父节点。

- 叶子节点:没有子节点的节点。

- 父节点:有子节点的节点。

- 子节点:一个节点的直接后继节点。

- 深度:从根节点到当前节点所经过的边的数量。

- 高度:树中任意节点最大深度的值。

2023大学_算法与数据结构模拟试题及参考答案

2023大学_算法与数据结构模拟试题及参考答案

2023算法与数据结构模拟试题及参考答案算法与数据结构模拟试题一、单选题1. 数据是信息的载体,它有( )几种形式。

A. 整数和实型数B. 字符串C. 图像和声音D. 信息E. 磁盘文件2. 在算法分析与数据结构中,算法描述方法有( )。

A. 自然语言B. 框图C. 类计算机语言D. 数据结构3. 常用的线性表存贮结构有( )。

A. 顺序存贮结构B. 链表存贮结构C. 队列存贮结构D. 堆栈存贮结构E. 顺序存贮与链表存贮混合结构 4. 一维数组元素的类型可以是( )。

A. 简单变量,如整数、浮点数B. 复合变量,如结构体、数组C. 只有简单变量D. 指针变量E. 字符串5. 假设以链表的方式实现堆栈,top为栈顶指针,指向类型为linkstack 类型,下述程序实现将堆栈初始化为空栈的操作。

程序( )是正确的。

A. void INITSTACK( linkstack __top ) { top = NULL;};B. void INITSTACK(linkstack __ top ) { top = -1;};C. void INITSTACK(linkstack __ top ) { top = 0;};D. void INITSTACK(linkstack __ top ) { top =空;};6. 下列排序算法中哪些是不稳定的?( )A. 冒泡排序B. 选择排序C. 快速排序D. 堆排序算法与数据结构模拟试题二、多选题1. 线性表中的元素只能是简单类型。

( )2. 线性表是数组。

( )3. 如果入队与出队的操作顺序不同,其输出元素的顺序可以与输入元素的顺序不同。

( )4. 栈满是数据对象栈的固有操作。

( )5. 二叉树只有前序、中序和后序三种遍历运算。

( )6. 数据结构中只研究了二叉树,对一般树没有给出解决问题的算法。

( )7. 在单向链表中,在X指向的结点后插入结点,对应的方法与X是否是头指针无关。

《算法与数据结构》模拟试题3 答案

《算法与数据结构》模拟试题3  答案

《算法与数据结构》模拟试题3(参考答案)一、填空题(每小题2分,共18分)1、 线性结构 树形结构 图(或网)状结构2、 时间复杂度 空间复杂度3、 (直接)前驱结点 (直接)后继结点4、 零个字符组成的串 05、 3006、 只有右子树上的所有结点7、 先序遍历8、 索引 块9、 操作系统 数据库二、单项选择题(请将答案写在题目后的括号中。

每题2分,共18分)三、分析题(每题6分,共30分)1、 解:所画出的二叉树如图(a)所示。

树的后序遍历序列是gdhiebfca ,其后序线索化树图(a) 二叉树图(b) 后序线索化树2、 解:该网的邻接链表如下图所示: 从顶点V 1出发的广度优先搜索的顶点序列是1→2→3→5→4,相应的生成树如下:3、 解:将关键字序列(14,9,18,7,4,13,25,19,6)依此插入到初态为空的二叉排序树中所得到的二叉排序树T 如图(a)所示;删除18之后的二叉排序树T1如图(b)所示;最后再插入18之后的二叉排序树T2。

从顶点V 1出发广度优先搜索生成树4、解:根据所给定的散列函数和处理冲突方法,得到的散列表结构如下:成功查找的平均查找长度:ASL=(1×8+2×2+3×1)/11=17/115、解:做非递减排序时的每一趟结果如下:初始关键字:35,29,52,60,17,9,38,27,13,45第一趟:[29,35] [52,60] [9,17] [27,38] [13,45]第二趟:[29,35,52,60] [9,17,27,38] [13,45]第三趟:[29,35,52,60] [9,13,17,27,38,45]第四趟:[9,13,17,27,29,35,38,45,52,60]第四趟归并完毕,排序结束。

四、算法填空(每空2分,共20分)请在下面各个算法的空白处填上相应的语句,以实现算法功能。

每个空白处只能填一个语句。

数据结构3-答案

数据结构3-答案

一、单选题:C D B A A A C B C C二、填空题:n n/2 7 n2+2n3+…..+(m-1)n m+1 只有根节点的二叉树逆序1000000 2000 最大24三、应用题1、参考答案A B C D E F G H10 001 11 0001 0110 0111 010 00002、0 1 2 3 4 5 6 7 8 9 1012 100 25 16 17 18 8 40 7(1) (2) (1) (1) (1) (1) (1) (3)(4)搜索成功的平均搜索长度为ASL succ = 19(1 + 2+ 1 + 1 + 1 + 1 +1+ 3+ 4) = 533、4、最小生成树或最小生成树不唯一,有两棵,如上所示。

5、四、算法设计题1、void Bucketsort ( ElementType A[ ], int N )12 45635 6 11 1618 1 24563{int Counter[ 3 ];int i, j, k;for ( i = 0; i < 3; i++ )Counter[ i ] = 0;for ( i = 0, i < N; i++ ) {if ( A[ i ] == false )Counter[ 0 ] ++;elseif ( A[ i ] == maybe )Counter[ 1 ] ++;elseCounter[ 2 ] ++;}k = 0;for ( i = 0; i < Counter[ 0 ]; i++ )A[ i ] = false;k += Counter[ 0 ];for ( i = 0; i < Counter[ 1 ]; i++ )A[ k+i ] = maybe;k += Counter[ 1 ];for ( i = 0; i < Counter[ 2 ]; i++ )A[ k+i ] = true;}2、int BinaryTree<Type> :: leaf ( BinTreeNode<Type> * ptr ) {if ( ptr == NULL ) return 0;else if ( ptr->leftChild == NULL && ptr->rightChild == NULL ) return 1;else return leaf ( ptr->leftChild ) + leaf ( ptr->rightChild );}3、int max=0;int Find_All_Path(Graph *G,int S,int T, int K)/{G->setMark(S,VIEITED);if(S==T) //找到了一条简单路径{ if (max<K) max=K; return(max); }elsefor(int p=G->first(S);p<G->n();p=G->next(S,p){if(G->getMark(p)==UNVISITED) Find_All_Path(G,p,T,k+1); //继续寻找}G->setMark(S,UNVIEITED); }。

32学时数据结构与算法模拟试题及答案.gfp

32学时数据结构与算法模拟试题及答案.gfp

《 数据结构与算法 》试卷(第 - 1 - 页 共 5 页)《 数据结构与算法 》模拟试题(考试时间:120 分钟,满分:100 分)一、选择题(每题 1 分 共20 分) 分数 评卷人1、下列关于数据结构的基本概念中,叙述正确的是( D )。

(A) 数据元素是数据的最小单位 。

(B) 数据的逻辑结构是指数据的各数据项之间的逻辑关系(C) 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。

(D) 任何一个算法的设计取决于选定逻辑结构,而算法的实现依赖于采用的存储结构。

2、下面程序的时间复杂度为( B )for (i=1,s=0; i<=n ; i++) {t=1;for(j=1;j<=i ;j++) t=t*j ;s=s+t ;}(A) O(n) (B) O(n 2) (C) O(n 3) (D) O(n 4)3、以下哪一个术语与数据的存储结构无关?( C ) (A) 双向链表 (B) 线索二叉树 (C) 栈 (D) 顺序栈4、某算法的时间复杂度为O(n 2),表明该算法的( C )(A) 问题规模是n 2 (B) 执行时间等于n 2(C) 执行时间与n 2成正比 (D) 问题规模与n 2成正比5、 设某数据结构的二元组形式表示为A=(D ,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>},则数据结构A 是( B )。

(A) 线性结构 (B) 树型结构 (C) 物理结构 (D) 图型结构6、下面关于线性表的叙述错误的是( D )。

(A) 线性表采用顺序存储必须占用一片连续的存储空间 (B) 线性表采用链式存储不必占用一片连续的存储空间 (C) 线性表采用链式存储便于插入和删除操作的实现 (D) 线性表采用顺序存储便于插入和删除操作的实现7、下面的叙述不正确的是( C )。

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

《算法与数据结构》模拟试题3(参考答案)
一、填空题(每小题2分,共18分)
1、 线性结构 树形结构 图(或网)状结构
2、 时间复杂度 空间复杂度
3、 (直接)前驱结点 (直接)后继结点
4、 零个字符组成的串 0
5、 300
6、 只有右子树上的所有结点
7、 先序遍历
8、 索引 块
9、 操作系统 数据库
二、单项选择题(请将答案写在题目后的括号中。

每题2分,共18分)
三、分析题(每题6分,共30分)
1、 解:所画出的二叉树如图(a)所示。

树的后序遍历序列是gdhiebfca ,其后序线索化树
图(a) 二叉树
图(b) 后序线索化树
2、 解:该网的邻接链表如下图所示: 从顶点V 1出发的广度优先搜索的顶点序列是1→2→3→5→4,相应的生成树如下:
3、 解:将关键字序列(14,9,18,7,4,13,25,19,6)依此插入到初态为空的二叉排序树中所得到的二叉排序树T 如图(a)所示;删除18之后的二叉排序树T1如图(b)所示;最后再插入18之后的二叉排序树T2。

从顶点V 1出发广度优先搜索生成树
4、解:根据所给定的散列函数和处理冲突方法,得到的散列表结构如下:
成功查找的平均查找长度:ASL=(1×8+2×2+3×1)/11=17/11
5、解:做非递减排序时的每一趟结果如下:
初始关键字:35,29,52,60,17,9,38,27,13,45
第一趟:[29,35] [52,60] [9,17] [27,38] [13,45]
第二趟:[29,35,52,60] [9,17,27,38] [13,45]
第三趟:[29,35,52,60] [9,13,17,27,38,45]
第四趟:[9,13,17,27,29,35,38,45,52,60]
第四趟归并完毕,排序结束。

四、算法填空(每空2分,共20分)
请在下面各个算法的空白处填上相应的语句,以实现算法功能。

每个空白处只能填一个语句。

1、循环队列Q的队首元素出队操作算法。

Q.front==Q.rear
Q.front=(Q.front+1)%Max_Queue_Size ;
2、二叉树中序遍历的非递归算法。

p=stack[top--]
p=p->Rchild
bool!=0
3、折半查找算法。

Mid=(Low+High)/2
return(0)
4、简单选择排序算法。

L->R[n].key<L->R[k].key k!=m
L->R[k]=L->R[0]
五、编写算法(要求给出相应的数据结构说明,14分)
解:结点类型定义及算法如下:
#define int ElemType
typedef struct Lnode
{ ElemType data; /* 数据域,保存结点的值*/
struct LNode *next; /* 指针域*/
}LNode; /* 结点的类型*/
void Delete_LinkList_Value(LNode *L)
{ LNode *p=L->next, *q, *ptr ;
ElemType k ;
while ( p->next!=NULL)
{ k=p->data ; ptr=p ; q=ptr->next ;
while (q!=NULL)
{ if (q->data==k)
{ ptr->next=q->next ; free(q) ; } /* 删除值相同的结点*/ ptr=ptr–>next ; q=ptr–>next ;/* 继续检查后续结点*/
}
p=p->next ;/* 继续检查下一结点,是否有值相同的结点*/ }
算法分析:设单链表长度为n,若指针p指向第i(i∈[1,n-1])个结点,则删除和指针p所指向结点值相同的结点时:比较次数为n-i,指针的移动次数为n-i,则总的比较次数为:n-1
∑(n-i)=n(n-1)/2
i=1
所以,时间复杂度为:O(n2)。

相关文档
最新文档