不得不佩服这位大哥,算法钻研的这么细,说的还很清楚:http://blog.csdn.net/morewindows/article/details/7370155算法并非照着贴来的,是我看了他的说明自己写的。去掉重复的非递归全排列:如何计算字符串的下一个排列了?来考虑"926520"这个字符串,我...
分类:
其他好文 时间:
2015-04-12 21:01:37
阅读次数:
164
字符串的全排列非递归算法是每次都寻找比前序列大一点的序列,如:起点:字典序最小的排列,例如12345终点:字典序最大的排列,例如54321过程:从当前排列生成字典序刚好比它大的下一个排列。算法过程:后找、小大、交换、翻转后找:字符串中最后一个升序的位置i,即S[k]>S[k+1](k>i),S[i]...
分类:
编程语言 时间:
2015-04-11 20:38:52
阅读次数:
184
二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用...
分类:
其他好文 时间:
2015-04-11 18:00:39
阅读次数:
169
二叉树遍历的三种方法递归简单时间O(n)空间O(n)非递归+栈中等时间O(n)空间O(n)非递归、不用栈中等时间O(n)空间O(1)伪代码实现--近C++代码方法一:递归1 Inorder-Tree-Walk(x)2 if(x != NULL)3 Inorder-Tree-W...
分类:
其他好文 时间:
2015-04-11 16:08:59
阅读次数:
142
定义一个方法(函数),实现输入一个链表的头结点,然后可以反转这个链表的方向,并输出反转之后的链表的头结点。typedef struct Node{ int data; Node *next;} Node, *List;链表类的问题,涉及到了很多指针的操作,需要严谨的分析,全面的分析问题之...
分类:
其他好文 时间:
2015-04-07 19:27:22
阅读次数:
115
非递归线段树实现区间修改区间求和的两种方法(以 POJ 3468 为例)...
分类:
其他好文 时间:
2015-04-07 12:13:14
阅读次数:
131
题目链接:https://leetcode.com/problems/binary-tree-preorder-traversal/(非递归实现)二叉树的先序遍历。 1 class Solution 2 { 3 public: 4 vector preorderTraversal(TreeN...
分类:
其他好文 时间:
2015-04-05 23:31:23
阅读次数:
144
题目链接:https://leetcode.com/problems/binary-tree-inorder-traversal/(非递归实现)二叉树的中序遍历。 1 class Solution 2 { 3 public: 4 vector inorderTraversal(TreeNod...
分类:
其他好文 时间:
2015-04-05 23:29:30
阅读次数:
149
题目链接:https://leetcode.com/problems/binary-tree-postorder-traversal/(非递归实现)二叉树的后序遍历。 1 class Solution 2 { 3 public: 4 vector postorderTraversal(Tre...
分类:
其他好文 时间:
2015-04-05 23:24:15
阅读次数:
160