出题:要求用递归将一个栈结构的元素内外颠倒;分析:本题再次说明系统栈是程序员最好的帮手,但递归度较高所以时间复杂度较大,可以使用空间换时间的方法(额外数组保存栈元素,然后逆向压入);第一层递归(清空栈元素,并使用系统栈保存):[1,2,3,4,5],栈顶元素为1,将1弹出之后,递归处理[2,3,4,...
分类:
其他好文 时间:
2014-05-27 00:33:08
阅读次数:
445
算法:1.
对root的左子树做处理,让左子树的根节点作为,根节点的右子树,并让右子树作为左子树根节点的右子树的子树2. 递归遍历右子树public void
flatten(TreeNode root) { if(root==null){ return; ...
分类:
其他好文 时间:
2014-05-26 23:39:49
阅读次数:
253
二叉树非递归访问,借助一个栈,来模拟递归调用过程。struct TreeNode { char
val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL),
right(NULL...
分类:
其他好文 时间:
2014-05-26 22:25:25
阅读次数:
353
深度搜索应用之黑白图像(非递归)前言: 使用深度搜索,有两个方法:递归,栈。本质是栈。
递归有一个缺陷,栈溢出。栈有一个缺陷,程序相对递归更复杂。练习题:
输入一个n*n的黑白图像(1表示黑色,0表示白色),任务是统计其中八连块的个数。如果两个黑格子有公共边或者公共顶点,就说它们属于同一个八连...
分类:
其他好文 时间:
2014-05-26 21:53:21
阅读次数:
344
#include#include#include#include#includeusing
namespace std;class node{public: int val; node* left; node* right;
node():val(0),left(NULL),...
分类:
其他好文 时间:
2014-05-26 21:36:49
阅读次数:
264
递归是编程中一个相对难以理解但是却又很重要的概念.
对于从命令式语言开始学习编程的程序员天生对此有理解缺陷, 而对于从类似C++这种对函数式编程范式不友好的语言开始学习编程的程序员就更加如此了.(比如我自己)
碰巧(其实不巧)最近在读这本书(这本书国内没有引进, 网上只有巨贵的亚马逊卖的原版, 我读...
分类:
其他好文 时间:
2014-05-26 16:17:15
阅读次数:
401
#include#include#include#include#include#includeusing
namespace std;class node{public: int val; node* left; node* right;
node():val(0),lef...
分类:
其他好文 时间:
2014-05-26 16:14:18
阅读次数:
280
由于没话多少时间,这个扫雷我只实现了主要功能(扫雷功能,递归实现)废话不多说,直接上代码using System;using
System.Collections.Generic;using System.ComponentModel;using System.Data;using
System.D...
分类:
其他好文 时间:
2014-05-26 13:57:23
阅读次数:
305
本文地址:http://www.cnblogs.com/archimedes/p/recursive-practice.html,转载请注明源地址。1、炮弹一样的球状物体,能够堆积成一个金字塔,在顶端有一个炮弹,它坐落在一个4个炮弹组成的层面上,而这4个炮弹又坐落在一个9个炮弹组成的层面上,以此类推...
分类:
编程语言 时间:
2014-05-26 13:12:52
阅读次数:
354
基本上一次过,要注意边界条件的问题:如果在recursion里有两个参数int begin, end,
递归写作recursion(num, mid+1, end), 因为+号的原因,递归中是会出现begin > end
的情况的,所以考虑初始条件的时候应该要考虑充分。 1 /** 2 * Def....
分类:
其他好文 时间:
2014-05-26 12:12:49
阅读次数:
257