数据结构
Gusta_j
这个作者很懒,什么都没留下…
展开
-
选择题2--中国大学MOOC-陈越、何钦铭-数据结构-2020夏期末考试
2-12 对一组数据{ 2,12,16,88,5,10 }进行排序,若前三趟排序结果如下: 第一趟排序结果:2,12,16,5,10,88 第二趟排序结果:2,12,5,10,16,88 第三趟排序结果:2,5,10,12,16,88 则采用的排序方法可能是:2-13 设一个栈的输入序列是1、2、3、4、5,则下列序列中,是栈的合法输出序列的是?(4分)2-14给定有权无向图的邻接矩阵如下,其最小生成树的总权重是:2-15在并查集问题中,已知集合元素0~8所以对应的父结点编号值分别是{ 1, -原创 2020-08-29 15:35:47 · 1880 阅读 · 0 评论 -
选择题1--中国大学MOOC-陈越、何钦铭-数据结构-2020夏期末考试
2-1 要判断一个整数N(>10)是否素数,我们需要检查3到√N之间是否存在奇数可以整除N。则这个算法的时间复杂度是:(2分)2-2数据结构中Dijkstra算法用来解决哪个问题?(2分)2-3 将 {28, 15, 42, 18, 22, 5, 40} 逐个按顺序插入到初始为空的最小堆(小根堆)中。则该树的前序遍历结果为:2-4给定初始待排序列{ 15,9,7,8,20,-1,4 }。如果希尔排序第一趟结束后得到序列为{ 15,-1,4,8,20,9,7 },则该趟增量为:2-5下原创 2020-08-29 15:23:44 · 2237 阅读 · 0 评论 -
判断题--中国大学MOOC-陈越、何钦铭-数据结构-2020夏期末考试
1-1若一棵平衡二叉树的所有非叶结点的平衡因子都是0,则其必为完美二叉树。(2分)1-2 N2logN和NlogN2具有相同的增长速度。(2分)1-3若用平方探测法解决冲突,则插入新元素时,若散列表容量为质数,插入就一定可以成功。(2分)1-4对N个不同的数据采用冒泡排序进行从大到小的排序,当元素基本有序时交换元素次数肯定最多。(2分)1-5 在任一有向图中,所有顶点的入度之和等于所有顶点的出度之和。1-5 TFFFT...原创 2020-08-29 15:06:06 · 2311 阅读 · 0 评论 -
中国大学MOOC-陈越、何钦铭-数据结构-2020夏期末考试
5-2下列代码的功能是对一个给定的图G执行拓扑排序,其中TopNum[]从1开始记录拓扑序。void Topsort( Graph G ){ Queue Q; Vertex V, W; NodePtr ptr; int counter = 0; Q = CreateEmptyQueue(NumVertex); for ( V=0; V<G->NumV; V++ ) if ( Indegree[V] == 0 ) Enque原创 2020-08-29 10:27:35 · 4218 阅读 · 0 评论 -
程序填空题--中国大学MOOC-陈越、何钦铭-数据结构-2020夏期末考试
5-1下列代码的功能是将一列元素{ r[1] … r[n] }按其键值 key 的非递减顺序排序。普通选择排序是每次仅将一个待排序列的最小元放到正确的位置上,而这个另类的选择排序是每次从待排序列中同时找到最小元和最大元,把它们放到最终的正确位置上。void sort( list r[], int n ) { int i, j, mini, maxi; for (i=1; i<n-i+1; i++) { mini = maxi = i; for( j=i+原创 2020-08-29 10:24:17 · 1969 阅读 · 0 评论 -
7-1 还原二叉树 (8分)--中国大学MOOC-陈越、何钦铭-数据结构-2020夏期末考试
中国大学MOOC-陈越、何钦铭-数据结构-2020夏期末考试给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入格式:输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出格式:输出为一个整数,即该二叉树的高度。输入样例:9ABDFGHIECFDHGIBEAC输出样例:5使用DEV C++写的代码如下#include <stdio.h>#include &原创 2020-08-29 10:21:23 · 355 阅读 · 0 评论 -
堆排序--C语言
堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆中定义以下几种操作:1.最大堆调整(Max Heapify):将堆的末端子节点作调整,使得子节点永远小于父节点2.创建最大堆(Build Max Heap):将堆中的所有数据重新排序3.堆排序(HeapSort):移除位在第一个数据的根节点,并做最大堆调整的递归运算利用C语言写的堆排序的算法如下:平均时间复杂度为O(原创 2020-08-14 11:31:44 · 218 阅读 · 0 评论 -
希尔排序--C语言
希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。基本思路是先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2,直至增量为1;利用C语言写的希尔排序的算法如下:平均时间复杂度为O(N**d),最坏时间复杂度为O(NN),稳定性为不稳定;#include原创 2020-08-14 10:23:44 · 219 阅读 · 0 评论 -
插入排序--C语言
插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法。插入排序的工作方式像许多人排序一手扑克牌,是指在待排序的元素中,假设前面n-1(其中n>=2)个数已经是排好顺序的,现将第n个数插到前面已经排好的序列中,然后找到合适自己的位置,使得插入第n个数的这个序列也是排好顺序的。利用C语言写的插入排序的算法如下:平均时间复杂度为O(NN),最坏时间复杂度为O(NN),稳定性为稳定;#include <stdio.h>void Insertion_sort(int原创 2020-08-13 20:37:44 · 269 阅读 · 0 评论 -
冒泡排序--C语言
冒泡排序(Bubble Sort)是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。利用C语言写的选择排序的算法如下:平均时间复杂度为O(NN),最坏时间复杂度为O(NN),稳定性为稳定;#include <stdio.h>#define maxsize 100001//数量太多无法计算,空间不足typ原创 2020-08-13 20:22:26 · 506 阅读 · 0 评论 -
选择排序—C语言
利用C语言写的选择排序的算法如下:平均时间复杂度为O(NN),最坏时间复杂度为O(NN),稳定性为不稳定;#include <stdio.h>void selectSort(int arr[],int N);int main (void){ int i; int A[10] = {1,7,5,3,8,2,9,4,6,0}; selectSort(A,10); for(i = 0;i <10 ; i++) { printf("%d ",A[i]); } ret原创 2020-08-13 20:04:33 · 135 阅读 · 0 评论 -
04-树4 是否同一棵二叉搜索树
给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数N (≤10)和L,分别是每个序列插入元素的个数和需要检查的序列个数。第2行给出N个以空格分隔的正整数,作为初始插入序列。最后L行,每行给出N个插入的元素,属于L个需要检查原创 2020-07-30 12:54:24 · 129 阅读 · 0 评论 -
06-图2 Saving James Bond - Easy Version
This time let us consider the situation in the movie “Live and Let Die” in which James Bond, the world’s most famous spy, was captured by a group of drug dealers. He was sent to a small piece of land at the center of a lake filled with crocodiles. There he原创 2020-07-27 22:04:14 · 144 阅读 · 0 评论 -
06-图1 列出连通集--数据结构
给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。输出格式:按照{v1 v2 … vn}的格式,每行输出一个连通集。先输出DFS的结果,再输出BFS的结果。输入样例:8 60 70 12 04 12 43.原创 2020-07-27 11:22:51 · 185 阅读 · 0 评论