本文只探究迷宫寻址中深度优先搜索的递归和非递归算法比较,其他相关代码详见《迷宫问题(巧若拙)》http://blog.csdn.net/qiaoruozhuo/article/details/41020745...
分类:
编程语言 时间:
2014-11-12 16:33:18
阅读次数:
249
mooc的作业本来以为是很简单,真正写下去才知道不简单。每个都略有技巧,细细琢磨#include #include int all, top;class TreeNode{ public: int value; TreeNode* left; Tree...
分类:
编程语言 时间:
2014-11-02 19:30:26
阅读次数:
276
三种不同的遍历方式区别在于栈空间的释放时机和输出结点信息时机的不同:先序和中序遍历是在访问栈顶元素的右孩子(右子树)之前退栈,而后序遍历在访问右子树之后退栈;先序遍历是在某结点入栈时输出其信息,而中序和后序遍历是在该结点退栈时输出其信息。
无论是递归算法还是非递归算法,都遵循上述规则,二者可以一一对应。图示如下:...
分类:
编程语言 时间:
2014-10-29 17:16:11
阅读次数:
294
题目:设计一个执行中序遍历的非递归算法解答:分析:1、使用栈模拟递归调用的过程,即可以实现中序遍历2、在结点中增加指针域,使该指针域指向父节点,通过迭代即可实现中序遍历非递归算法:栈模拟算法版本一:// InOrder Traveraslvoid InOrder( SearchTree T ) { ...
分类:
编程语言 时间:
2014-10-18 17:00:00
阅读次数:
285
题目:给出O(N)运行时间的非递归算法,实现对一个含N个元素的链表的逆转,要求空间复杂度为O(1)代码:/* Assuming List with header and L is not empty */List ReverseList( List L ){ Position CurrentP...
分类:
编程语言 时间:
2014-10-18 15:14:15
阅读次数:
195
转至:http://blog.csdn.net/alex44667416/article/details/4723991package tree;import java.util.Stack;// 二叉树节点 class BTNode { private char key; privat...
分类:
编程语言 时间:
2014-10-12 19:32:48
阅读次数:
255
把三个二叉树遍历的题放在一起了。递归写法太简单,就不再实现了,每题实现了两种非递归算法。一种是利用栈,时间和空间复杂度都是O(n)。另一种是借助线索二叉树,也叫Morris遍历,充分利用树中节点的空指针域。先序:Binary Tree Preorder TraversalGiven a binary...
分类:
其他好文 时间:
2014-10-03 23:07:55
阅读次数:
341
快排的原理是,让一个数作为中间值A,使得左边的数都小于(大于)等于A,右边的数都大于(小于)A。 1 public static void quickSort(Integer[] arrayList,int begin,int end){2 if(begin>=end)...
分类:
其他好文 时间:
2014-09-25 16:16:49
阅读次数:
140
前一段时间总结了全排列问题的几种递归解法,今天再总结一下如何通过对系统栈行为的模拟来非递归的实现全排列问题。 我们用一个数组stack[]来表示一个栈,用一个top指针来表示栈顶,用一个flags[]数组来标示每一个数字的可用性;用i来表示当前的状态。 初始状态top=0;i=-1;f...
分类:
其他好文 时间:
2014-08-21 22:31:37
阅读次数:
206