二叉树实现如下: 先序遍历递归实现: 1.访问根节点; 2.先序遍历左子树; 3.先序遍历右子树; 先序遍历非递归实现: 1.首先申请一个新的栈,记为stack; 2.将头结点head压入stack中; 3.每次从stack中弹出栈顶节点,记为cur,然后打印cur值,如果cur右孩子不为空,则将右 ...
分类:
其他好文 时间:
2017-10-30 19:39:03
阅读次数:
161
借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”),并保证每个移动符合汉诺塔问题的要求。 输入格式: 输入为一个正整数N,即起始柱上的盘数。 输出格式: 每个操作(移动)占一行,按柱1 -> ...
分类:
其他好文 时间:
2017-10-05 16:47:33
阅读次数:
1346
斐波那契数列(Fibonacci)的递归与非递归实现 费波那契数列由0和1开始,之后的数就由之前的两数相加 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584,………. 递归算法 用递归算法来求值, ...
分类:
编程语言 时间:
2017-10-03 13:33:24
阅读次数:
244
/*binary-tree-postorder-traversal*/ /***************************/ /* Given a binary tree, return the postorder traversal of its nodes' values. For exa... ...
分类:
其他好文 时间:
2017-08-01 17:54:14
阅读次数:
145
二叉树的遍历方式: 1、深度优先:递归,非递归实现方式 1)先序遍历:先访问根节点,再依次访问左子树和右子树 2)中序遍历:先访问左子树,再访问根节点吗,最后访问右子树 3)后序遍历:先访问左子树,再访问右子树,最后访问根节点 2、广度优先 按照树的深度,一层一层的访问树的节点 ...
分类:
其他好文 时间:
2017-07-30 17:12:53
阅读次数:
170
(非递归实现) (递归实现) 最优时间复杂度:O(1) 最坏时间复杂度:O(logn) 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。 ...
分类:
编程语言 时间:
2017-07-24 09:55:16
阅读次数:
174
5-17 汉诺塔的非递归实现 (25分) 借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”),并保证每个移动符合汉诺塔问题的要求。 输入格式: 输入为一个正整数N,即起始柱上的盘数。 输出格 ...
分类:
其他好文 时间:
2017-07-17 22:00:51
阅读次数:
287
翻转一棵二叉树。 样例: 1 1 / \ / \2 3 => 3 2 / \ 4 4 问题比较简单,这里给出递归和非递归的做法。 递归实现: 非递归实现: ...
分类:
其他好文 时间:
2017-06-24 17:20:31
阅读次数:
130
二叉树的遍历有前序遍历、中序遍历、后序遍历、层次遍历等,笔者在这里总结一下各种遍历的实现。 一.前序遍历。 前序遍历访问节点顺序为:根节点->左子节点->右子节点。 递归实现如下: 非递归实现(使用栈)如下: 对于任一结点P: ①访问结点P,并将结点P入栈; ②判断结点P的左孩子是否为空,若为空,则 ...
分类:
其他好文 时间:
2017-06-24 17:20:22
阅读次数:
137