自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 问答 (1)
  • 收藏
  • 关注

原创 【最短路径】算法7-15:迪杰斯特拉最短路径算法

题目描述在带权有向图G中,给定一个源点v,求从v到G中的其余各顶点的最短路径问题,叫做单源点的最短路径问题。在常用的单源点最短路径算法中,迪杰斯特拉算法是最为常用的一种,是一种按照路径长度递增的次序产生最短路径的算法。可将迪杰斯特拉算法描述如下:![在这里插入图片描述](https://img-blog.csdnimg.cn/20200816113221978.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,t

2020-08-16 11:36:38 562

原创 【哈夫曼树】带权路径长度WPL

题目描述哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。输入输入有多组数据。每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。输出输出权值。样例输入22 8 35 11 30 样例输出1062#include <cstdio>#include <queue>usin

2020-07-26 17:29:55 1141

原创 【哈夫曼树】合并果子

题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。 因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并

2020-07-24 15:39:28 177

原创 【二叉树】二叉树遍历/根据先序创建二叉树

题目描述编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。例如如下的先序遍历字符串:ABC##DE#G##F###其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结输入输入包括1行字符串,长度不超过100。输出可能有多组测试数据,对于每组数据,输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。每个输出结果占一行。样例输入a#b#cdef#####a##样例输出a b f

2020-06-19 22:23:41 1721

原创 【二叉树】二叉树

题目描述如上所示,由正整数1,2,3……组成了一颗特殊二叉树。我们已知这个二叉树的最后一个结点是n。现在的问题是,结点m所在的子树中一共包括多少个结点。比如,n = 12,m = 3那么上图中的结点13,14,15以及后面的结点都是不存在的,结点m所在子树中包括的结点有3,6,7,12,因此结点m的所在子树中共有4个结点。输入输入数据包括多行,每行给出一组测试数据,包括两个整数m,n (1 <= m <= n <= 1000000000)。最后一组测试数据中包括两个0,表示输入

2020-06-17 23:43:02 240

原创 【二叉树】复原二叉树

题目描述小明在做数据结构的作业,其中一题是给你一棵二叉树的前序遍历和中序遍历结果,要求你写出这棵二叉树的后序遍历结果。 输入输入包含多组测试数据。每组输入包含两个字符串,分别表示二叉树的前序遍历和中序遍历结果。每个字符串由不重复的大写字母组成。 输出对于每组输入,输出对应的二叉树的后续遍历结果。 样例输入DBACEGF ABCDEFGBCAD CBAD样例输出CBFGEDCDAB在这里插入代码片...

2020-06-17 23:37:31 370

原创 【二叉树】通过后序中序求层序

题目给出一棵二叉树的后序遍历和中序遍历,求这棵二叉树的层序遍历序列。输入72 3 1 5 7 6 41 2 3 4 5 6 7输出4 1 6 3 5 7 2代码#include <cstdio>#include <queue>using namespace std;const int maxn = 100;int pro[maxn],in[maxn]; //pro后序,in中序 int n; //结点个数 struct Node{ int d

2020-06-06 11:16:06 405

原创 【BFS】走迷宫求步数

题目给定一个m*n大小的迷宫,其中 * 代表不可通过的墙壁,“.”代表平地,S表示起点,T表示终点。移动过程中,只能前往上下左右四个位置的平地,求从起点S到终点T的最少步数。输入5 5......*.*..*S*..***....T*2 2 4 3输出11#include <cstdio>#include <queue> using namespace std;const int maxn = 100;char matrix[maxn][ma

2020-05-30 13:04:36 419

原创 【BFS】求“块”的个数

题目给出一个m*n的矩阵,矩阵中元素为0或1。称位置(x,y)与其上下左右资格位置是相邻的。如果矩阵中有若干个1是相邻的,则称这些1构成了一个“块”,求给定矩阵中块的个数。输入6 70 1 1 1 0 0 10 0 1 0 0 0 00 0 0 0 1 0 0 0 0 0 1 1 1 01 1 1 0 1 0 0 1 1 1 1 0 0 0输出4#include <cstdio>#include <queue>using namespace std

2020-05-29 19:19:17 206

原创 【递归入门】出栈序列统计

题目描述栈是常用的一种数据结构,有n令元素在栈顶端一侧等待进栈,栈顶端另一侧是出栈序列。你已经知道栈的操作有两•种:push和pop,前者是将一个元素进栈,后者是将栈顶元素弹出。现在要使用这两种操作,由一个操作序列可以得到一系列的输出序列。请你编程求出对于给定的n,计算并输出由操作数序列1,2,…,n,经过一系列操作可能得到的输出序列总数。 输入整数n(1<=n<=15) 输出一个整数,即可能输出序列的总数目。 样例输入3 样例输出5提示

2020-05-29 17:37:53 432

原创 【递归入门】n皇后 问题

题目描述会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。 输入一个整数n( 1 < = n < = 10 ) 输出每行输出对应一种方案,按字典序输出所有方案。每种方案顺序输出皇后所在的列号,相邻两数之间用空格隔开。如果一组可行方案都没有,输出“no solute!” 样例输入4样例输出2 4 1 33 1 4 2#inc

2020-05-29 17:26:52 498

原创 【递归入门】组合+判断素数

【递归入门】组合+判断素数题目描述已知 n 个整数b1,b2,…,bn以及一个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为:3+7+12=22  3+7+19=29  7+12+19=38  3+12+19=34。现在,要求你计算出和为素数共有多少种。例如上例,只有一种的和为素数:3+7+19=29。 输入第一行两个整数:n , k (1<=n<=20,k<n

2020-05-25 23:04:36 385

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除