近期学习了回溯算法于是自己写了马踏棋盘的递归以及非递归方式的代码:
{CSDN:CODE:578438}
{CSDN:CODE:578437}
运行效果如下:
(本人水平有限,若有不足之处欢迎大家交流)...
分类:
编程语言 时间:
2015-01-13 06:48:38
阅读次数:
226
我们都知道,对二叉树进行递归遍历非常简单,但递归算法需要额外的栈机制来存储每次递归的值。既然递归算法内部使用栈实现的,那么我们也可以借助于栈来实现二叉树的非递归遍历。下面我们将讲解利用非递归实现二叉树的前序、中序和后序遍历。1、非递归二叉树前序遍历:我们知道,二叉树的前序遍历对节点的访问顺序是根节点...
分类:
其他好文 时间:
2015-01-11 10:58:22
阅读次数:
119
根据前面一个博文内容已经讲述了如何根据两种遍历方式进行构建二叉树
这里利用递归方式遍历二叉树,递归方式比较简单,后续补充其余非递归方式
再此主要是完善类的使用:
其中重点在于:接口定义
二叉树的析构删除
以及类成员变量中如果有指针,同时涉及复制构造函数和赋值操作符函数时需要用到的智能指针
如果接口方面定义不够好,还望包涵
.h文件
#include
#include
#incl...
分类:
其他好文 时间:
2015-01-11 06:17:54
阅读次数:
226
kosaraju、tarjan、kosaraju dfs转非递归,三种代码。。。
可以有效对付卡系统栈的管理员。。。...
//好久不用C++许多语法细节都忘记了...费了九牛二虎之力还搞的那么复杂,Anyway,下午把前序遍历给写出来了,还是有点成绩的。。。
#include
#include
using namespace std;
typedef int dataType;
typedef struct BiTree
{
dataType data;
BiTree *lchild;
BiTree *r...
分类:
其他好文 时间:
2015-01-08 18:00:59
阅读次数:
128
交换类排序:1:冒泡排序O(n^2),空间复杂度O(1)
2:快速排序O(n乘以log以2为底,n的对数),空间复杂度O(log以2为底,n的对数)
//冒泡排序
void BubbleSort(int R[],int n)
{
int i,j,tmp,flag;
for(i=0;i
{
flag=0;
for(j=n-1;...
分类:
编程语言 时间:
2015-01-06 18:07:29
阅读次数:
170
最近《算法导论》快看完图论部分了,很多有关图的算法都彻底搞懂并加以证明了。现在主要是将理解的思想用到题目中来加强下。这个题目主要是判断一下整个图是否是强连通的,很简单,可以用tarjan也可以用kosaraju。因为不要求找出所有的强连通分量,所以这里只是借用了kosaraju的思想,然后本题的解答简化的异常简单。
迷宫城堡
Time Limit: 2000/1000 MS (...
分类:
其他好文 时间:
2015-01-06 13:53:12
阅读次数:
142
虽然官方解释是这题目里的树看作无向无环图,从答案来看还是在“以1作为根节点”这一前提下进行的,这棵树搭建好以后,从叶节点开始访问,一直推到根节点即可——很像动态规划的“自底向上”。但这棵树的搭建堪忧:给出的边不知道哪边更接近根节点。所以我给出的方案干脆在两个顶点都将对方加成孩子,等到访问的时候再作处...
分类:
其他好文 时间:
2015-01-03 23:50:30
阅读次数:
233