![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
苏黎世丫
这个作者很懒,什么都没留下…
展开
-
树的同构
#include <stdio.h>#include <stdlib.h>struct node{char data;int l, r;}a[15], b[15];int check(int i, int j){if(a[a[i].l].data == b[b[j].l].data && a[a[i].r].data == b[b[j].r...转载 2018-11-14 22:18:14 · 89 阅读 · 0 评论 -
数据结构实验之排序三:bucket sort
Problem Description根据人口普查结果,知道目前淄博市大约500万人口,你的任务是帮助人口普查办公室按年龄递增的顺序输出每个年龄有多少人,其中不满1周岁的按0岁计算,1到2周岁的按1岁计算,依次类推,大于等于100岁的老人全部按100岁计算。Input输入第一行给出一个正整数N(<=5000000),随后连续给出N个整数表示每个人的年龄,数字间以空格分隔。Outpu...原创 2018-12-19 23:27:02 · 99 阅读 · 0 评论 -
数据结构实验之排序四:寻找大富翁
Problem Description2015胡润全球财富榜调查显示,个人资产在1000万以上的高净值人群达到200万人,假设给出N个人的个人资产值,请你快速找出排前M位的大富翁。Input首先输入两个正整数N( N ≤ 10^6)和M(M ≤ 10),其中N为总人数,M为需要找出的大富翁数目,接下来给出N个人的个人资产,以万元为单位,个人资产数字为正整数,数字间以空格分隔。Output...转载 2018-12-19 23:42:36 · 132 阅读 · 0 评论 -
数据结构实验之排序六:希尔排序
Problem Description我们已经学习了各种排序方法,知道在不同的情况下要选择不同的排序算法,以期达到最好的排序效率;对于待排序数据来说,若数据基本有序且记录较少时, 直接插入排序的效率是非常好的,希尔排序就是针对一组基本有序的少量数据记录进行排序的高效算法。你的任务是对于给定的数据进行希尔排序,其中增量dk=n/(2^k)(k=1,2,3……)Input连续输入多组数据,每组...转载 2018-12-20 00:24:25 · 114 阅读 · 0 评论 -
数据结构实验之查找一:二叉排序树
Problem Description对应给定的一个序列可以唯一确定一棵二叉排序树。然而,一棵给定的二叉排序树却可以由多种不同的序列得到。例如分别按照序列{3,1,4}和{3,4,1}插入初始为空的二叉排序树,都得到一样的结果。你的任务书对于输入的各种序列,判断它们是否能生成一样的二叉排序树。Input输入包含若干组测试数据。每组数据的第1行给出两个正整数N (n &amp;lt; = 10)和L...转载 2018-12-14 22:35:44 · 305 阅读 · 0 评论 -
数据结构实验之查找二:平衡二叉树
Problem Description根据给定的输入序列建立一棵平衡二叉树,求出建立的平衡二叉树的树根。Inpu输入一组测试数据。数据的第1行给出一个正整数N(n &lt;= 20),N表示输入序列的元素个数;第2行给出N个正整数,按数据给定顺序建立平衡二叉树。Output输出平衡二叉树的树根。Sample Input588 70 61 96 120Sample Output...转载 2018-12-14 22:41:50 · 803 阅读 · 0 评论 -
数据结构实验之查找四:二分查找
Problem Description在一个给定的无重复元素的递增序列里,查找与给定关键字相同的元素,若存在则输出找到的位置,不存在输出-1。Input一组输入数据,输入数据第一行首先输入两个正整数n ( n < = 10^6 )和m ( m < = 10^4 ),n是数组中数据元素个数,随后连续输入n个正整数,输入的数据保证数列递增。随后m行输入m个待查找的关键字keyO...转载 2018-12-14 22:52:09 · 105 阅读 · 0 评论 -
数据结构实验之查找五:平方之哈希表
Problem Description给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,3,…,m-1Input输入包含多组测试数据,到 EOF 结束。每组数据的第1行给出两个正整数N(N &amp;lt;= 500)和P(P &amp;gt;= 2N的最小素...转载 2018-12-14 23:03:11 · 91 阅读 · 0 评论 -
数据结构实验之查找六:顺序查找
Problem Description在一个给定的无序序列里,查找与给定关键字相同的元素,若存在则输出找到的元素在序列中的位序和需要进行的比较次数,不存在则输出"No",序列位序从1到n,要求查找从最后一个元素开始,序列中无重复元素。Input连续多组数据输入,每组输入数据第一行首先输入两个整数 n (n <= 10^6) 和 k (1 <= k <= 10^7),n是数...转载 2018-12-17 16:45:31 · 190 阅读 · 0 评论 -
数据结构实验之查找七:线性之哈希表
Problem Description根据给定的一系列整数关键字和素数p,用除留余数法定义hash函数H(Key)=Key%p,将关键字映射到长度为p的哈希表中,用线性探测法解决冲突。重复关键字放在hash表中的同一位置。Input连续输入多组数据,每组输入数据第一行为两个正整数N(N <= 1500)和p(p >= N的最小素数),N是关键字总数,p是hash表长度,第2行给...转载 2018-12-18 00:15:11 · 144 阅读 · 0 评论 -
数据结构实验之排序一:一趟快排
Problem Description给定N个长整型范围内的整数,要求输出以给定数据中第一个数为枢轴进行一趟快速排序之后的结果。Input连续输入多组数据,每组输入数据第一行给出正整数N(N < = 10^5),随后给出N个长整型范围内的整数,数字间以空格分隔。Output输出一趟快速排序后的结果,数字间以一个空格间隔,行末不得有多余空格。Sample Input849 3...转载 2018-12-19 00:04:59 · 267 阅读 · 0 评论 -
数据结构实验之查找三:树的种类统计
Problem Description随着卫星成像技术的应用,自然资源研究机构可以识别每一个棵树的种类。请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比。Input输入一组测试数据。数据的第1行给出一个正整数N (n <= 100000),N表示树的数量;随后N行,每行给出卫星观测到的一棵树的种类名称,树的名称是一个不超过20个字符的字符串,字符串由英文字母和空格组成...转载 2018-12-19 00:08:15 · 98 阅读 · 0 评论 -
数据结构实验之图论十一:AOE网上的关键路径
Problem Description一个无环的有向图称为无环图(Directed Acyclic Graph),简称DAG图。AOE(Activity On Edge)网:顾名思义,用边表示活动的网,当然它也是DAG。与AOV不同,活动都表示在了边上,如下图所示:如上所示,共有11项活动(11条边),9个事件(9个顶点)。整个工程只有一个开始点和一个完成点。即只有一个入度为零的点(源点)...转载 2018-12-05 21:15:22 · 396 阅读 · 0 评论 -
数据结构实验之图论十:判断给定图是否存在合法拓扑序列
Problem Description给定一个有向图,判断该有向图是否存在一个合法的拓扑序列。Input输入包含多组,每组格式如下。第一行包含两个整数n,m,分别代表该有向图的顶点数和边数。(n&lt;=10)后面m行每行两个整数a b,表示从a到b有一条有向边。Output若给定有向图存在合法拓扑序列,则输出YES;否则输出NO。Sample Input1 02 21 2...转载 2018-12-05 17:18:52 · 266 阅读 · 0 评论 -
数据结构实验之图论六:村村通公路
Problem Description当前农村公路建设正如火如荼的展开,某乡镇政府决定实现村村通公路,工程师现有各个村落之间的原始道路统计数据表,表中列出了各村之间可以建设公路的若干条道路的成本,你的任务是根据给出的数据表,求使得每个村都有公路连通所需要的最低成本。Input连续多组数据输入,每组数据包括村落数目N(N &amp;lt;= 1000)和可供选择的道路数目M(M &amp;lt;= 3000...转载 2018-12-03 11:20:09 · 179 阅读 · 1 评论 -
数据结构实验之二叉树三:统计叶子数
#include<stdio.h>#include<string.h>typedef struct tree{char data;struct tree *l,*r;}tree;int i;char s[55];tree *newtree(){tree *t;t = (tree *)malloc(sizeof(tree));t -> l = ...原创 2018-11-16 19:26:58 · 89 阅读 · 0 评论 -
数据结构实验之二叉树二:遍历二叉树
#include &lt;stdio.h&gt;#include&lt;string.h&gt;typedef struct tree{char data;struct tree *l,*r;}tree;int i;char s[55];tree *newtree(){tree *t;t = (tree *)malloc(sizeof(tree));t -&gt; l =...转载 2018-11-12 15:16:41 · 81 阅读 · 0 评论 -
数据结构实验之二叉树四:(先序中序)还原二叉树
#include &amp;lt;stdio.h&amp;gt;#include&amp;lt;string.h&amp;gt;typedef struct tree{char data;struct tree *l,*r;}tree;int h;tree *newtree(){tree *t;t = (tree *)malloc(sizeof(tree));t -&amp;gt; l = t -&转载 2018-11-16 22:12:06 · 143 阅读 · 0 评论 -
数据结构实验之图论七:驴友计划
Problem Description做为一个资深驴友,小新有一张珍藏的自驾游线路图,图上详细的标注了全国各个城市之间的高速公路距离和公路收费情况,现在请你编写一个程序,找出一条出发地到目的地之间的最短路径,如果有多条路径最短,则输出过路费最少的一条路径。Input连续T组数据输入,每组输入数据的第一行给出四个正整数N,M,s,d,其中N(2 <= N <= 500)是城市数目...转载 2018-12-04 10:43:38 · 169 阅读 · 0 评论 -
数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历
#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;stdlib.h&amp;gt;#include&amp;lt;string.h&amp;gt;#include &amp;lt;math.h&amp;gt;int s[105][105];//邻接数组存储图int n,S,num;//n表示顶点数量,S表示顶点,n转载 2018-11-27 09:52:47 · 112 阅读 · 0 评论 -
数据结构实验之图论八:欧拉回路
Problem Description在哥尼斯堡的一个公园里,有七座桥将普雷格尔河中两个岛及岛与河岸连接起来。能否走过这样的七座桥,并且每桥只走一次?瑞士数学家欧拉最终解决了这个问题并由此创立了拓扑学。欧拉通过对七桥问题的研究,不仅圆满地回答了哥尼斯堡七桥问题,并证明了更为广泛的有关一笔画的三条结论,人们通常称之为欧拉定理。对于一个连通图,通常把从某结点出发一笔画成所经过的路线叫做欧拉路。人...转载 2018-12-04 19:03:33 · 147 阅读 · 0 评论 -
数据结构实验之图论九:最小生成树
Problem Description有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的。现在我们想知道,最少花多少钱修公路可以将所有的城市连在一起,使在任意一城市出发,可以到达其他任意的城市。Input输入包含多组数据,格式如下。第一行包括两个整数n m,代表城市个数和可以修建的公路个数。(n &lt;= 100, m &lt;=10000)剩下m行每行3个正整数a...转载 2018-12-04 21:10:44 · 206 阅读 · 0 评论 -
数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
Problem Description在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫。在他们所在的地域,有n个隘口,编号为1…n,某些隘口之间是有通道连接的。其中近卫军团在1号隘口,天灾军团在n号隘口。某一天,天灾军团的领袖巫妖王决定派兵攻打近卫军团,天灾军团的部队如此庞大,甚至可以填江过河。但是巫妖王不想付出不必要的代价,他想知道在不修建任何通道的前提下,部队是否可以通过隘口及其相关...转载 2018-12-02 22:49:33 · 195 阅读 · 0 评论 -
数据结构实验之图论四:迷宫探索(判断连通图)
Problem Description有一个地下迷宫,它的通道都是直的,而通道所有交叉点(包括通道的端点)上都有一盏灯和一个开关;请问如何从某个起点开始在迷宫中点亮所有的灯并回到起点?Input连续T组数据输入,每组数据第一行给出三个正整数,分别表示地下迷宫的结点数N(1 < N <= 1000)、边数M(M <= 3000)和起始结点编号S,随后M行对应M条边,每行给出...转载 2018-12-02 23:09:30 · 846 阅读 · 0 评论 -
数据结构实验之图论二:图的深度遍历
Problem Description请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出。遍历时,先遍历节点编号小的。Input输入第一行为整数n(0 &amp;amp;amp;amp;lt; n &amp;amp;amp;amp;lt; 100),表示数据的组数。 对于每组数据,第一行是两个整数k,m(0 < k < 100,0 < m < k*k),表示有m条边,k个顶点。 下面的m行,每行是空格隔开的两个整数u,v,表示一...转载 2018-11-30 18:52:01 · 161 阅读 · 0 评论 -
数据结构实验之图论三:判断可达性
Problem Description在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫。在他们所在的地域,有n个隘口,编号为1…n,某些隘口之间是有通道连接的。其中近卫军团在1号隘口,天灾军团在n号隘口。某一天,天灾军团的领袖巫妖王决定派兵攻打近卫军团,天灾军团的部队如此庞大,甚至可以填江过河。但是巫妖王不想付出不必要的代价,他想知道在不修建任何通道的前提下,部队是否可以通过隘口及其相关...转载 2018-11-30 20:02:01 · 273 阅读 · 0 评论 -
数据结构实验之排序二:交换排序
Problem Description冒泡排序和快速排序都是基于"交换"进行的排序方法,你的任务是对题目给定的N个(长整型范围内的)整数从小到大排序,输出用冒泡和快排对这N个数排序分别需要进行的数据交换次数。Input连续多组输入数据,每组数据第一行给出正整数N(N ≤ 10^5),随后给出N个整数,数字间以空格分隔。Output输出数据占一行,代表冒泡排序和快速排序进行排序分别需要...转载 2018-12-19 00:36:05 · 110 阅读 · 0 评论