- 博客(12)
- 问答 (1)
- 收藏
- 关注
原创 【最短路径】算法7-15:迪杰斯特拉最短路径算法
题目描述在带权有向图G中,给定一个源点v,求从v到G中的其余各顶点的最短路径问题,叫做单源点的最短路径问题。在常用的单源点最短路径算法中,迪杰斯特拉算法是最为常用的一种,是一种按照路径长度递增的次序产生最短路径的算法。可将迪杰斯特拉算法描述如下:。输出输出权值。样例输入22 8 35 11 30 样例输出1062#include <cstdio>#include <queue>usin
2020-07-26 17:29:55
1200
原创 【哈夫曼树】合并果子
题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。 因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并
2020-07-24 15:39:28
200
原创 【二叉树】二叉树遍历/根据先序创建二叉树
题目描述编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。例如如下的先序遍历字符串:ABC##DE#G##F###其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结输入输入包括1行字符串,长度不超过100。输出可能有多组测试数据,对于每组数据,输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。每个输出结果占一行。样例输入a#b#cdef#####a##样例输出a b f
2020-06-19 22:23:41
1772
原创 【二叉树】二叉树
题目描述如上所示,由正整数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
267
原创 【二叉树】复原二叉树
题目描述小明在做数据结构的作业,其中一题是给你一棵二叉树的前序遍历和中序遍历结果,要求你写出这棵二叉树的后序遍历结果。 输入输入包含多组测试数据。每组输入包含两个字符串,分别表示二叉树的前序遍历和中序遍历结果。每个字符串由不重复的大写字母组成。 输出对于每组输入,输出对应的二叉树的后续遍历结果。 样例输入DBACEGF ABCDEFGBCAD CBAD样例输出CBFGEDCDAB在这里插入代码片...
2020-06-17 23:37:31
399
原创 【二叉树】通过后序中序求层序
题目给出一棵二叉树的后序遍历和中序遍历,求这棵二叉树的层序遍历序列。输入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
433
原创 【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
477
原创 【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
225
原创 【递归入门】出栈序列统计
题目描述栈是常用的一种数据结构,有n令元素在栈顶端一侧等待进栈,栈顶端另一侧是出栈序列。你已经知道栈的操作有两•种:push和pop,前者是将一个元素进栈,后者是将栈顶元素弹出。现在要使用这两种操作,由一个操作序列可以得到一系列的输出序列。请你编程求出对于给定的n,计算并输出由操作数序列1,2,…,n,经过一系列操作可能得到的输出序列总数。 输入整数n(1<=n<=15) 输出一个整数,即可能输出序列的总数目。 样例输入3 样例输出5提示
2020-05-29 17:37:53
463
原创 【递归入门】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
523
原创 【递归入门】组合+判断素数
【递归入门】组合+判断素数题目描述已知 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
421
空空如也
利用栈实现表达式求值,编译通过但是没有结果。
2019-12-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人