算法思想:后序遍历非递归算法。当访问到x节点时,栈中所有元素都是祖先,依次出栈 后序遍历非递归: 1.从根节点开始非空则进栈,一直进行到最左叶节点(仍然进栈,其下一步为2); 2.若遇到空节点,退栈,访问,并用r指针标记…
LeetCode-判断一棵树是否为平衡二叉树
文章目录 题目链接 题目描述 示例 解析 代码 题目链接 Problem.110:https://leetcode.com/problems/balanced-binary-tree/ 题目描述 给定一个二叉树,判断它是…
图的广度与深度优先遍历(Java)
一、图的广度(宽度)优先遍历 定义:其实就是离源节点近的节点先输出,远的节点后输出。图的广度优先遍历是依靠队列来实现的。 import java.util.HashSet; import java.util.Linked…
c++中图的遍历,dfs和bfs的简单实现
下面是代码实现部分,感兴趣再在下面看相关知识 //代码实现部分 #include using namespace std; #define M 100000 int p = 1;//记录数组队列的当前下标,头指针 int…
邻接矩阵,邻接表表示图,深度优先遍历
#include <stdio.h> #include <stdlib.h> bool visited[vernum]; int main() { printf(…
拓扑排序及模板
一种拓扑排序算法。该算法是简单而直观的,实质上属于广度优先遍历,因此称为广度优先拓扑排序算法。该算法包含下列几个步骤: &nbs…
贪心算法 - 删数问题
删数问题: 给定一个n位正整数a,删掉其中任意k(k<=n)个位,剩下的为按原顺序形成一个新的正整数。 找出剩下的数字最小的删树方案。 输入:a>0,n位,0<k<=n。 输出:最小的剩下的数。 …
贪心算法解决问题
贪心算法 描述: 贪心算法也叫作贪婪算法,是指在求解问题时总做出在当前看来最好的选择,就是不从整体考虑问题,仅在某种意义上的局部最优解。虽然不是所有问题都能得到最优解,但是面对范围广泛的许多问题时,能产生整体最优解或者是…
动态规划算法(后附常见动态规划例题及Java代码实现)
原文链接 一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划…
随机动态规划,随机库存管理,matlab 代码, c 代码
与一般的动态规划相比,随机动态规划是指 下一阶段的状态是不确定的,每个状态有一定的概率。因此,在计算递推公式时,需要取期望。 确定的动态规划的递推公式: \begin{equation}f(S_{i})=\max\lim…
蓝桥杯-装箱问题-动态规划-java
问题描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。 要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 输入格式 第一行…
File类的createNewFile()与createTempFile()的区别
转自:http://www.cnblogs.com/huangyibo/p/3667714.html 最近,在看代码时看到了一个方法, File.createTempFile() ,由此联想到File.createNew…