二叉树的先序、中序、后序、层次遍历的递归和非递归解法
package tree;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
public class TreeTraverse {
/**
* 先序递归
* @param root
*/
public stat...
分类:
其他好文 时间:
2014-09-05 16:12:21
阅读次数:
249
给定一棵二叉查找树,设计算法,将每一层的所有结点构建为一个
链表(也就是说, 如果树有D层,那么你将构建出D个链表).
这个题实质是个BFS,但是实现起来有点麻烦,又不像常见的BFS,
所以编写代码时有点艰难。
下面的代码使用两个list来实现层次遍历的,首先用Cur链表存储当前层
的结点,然后用Pre链表存储当前层的子层结点,Cur和Pre。下一次遍历时
Pre就变成当前层,Cur就...
分类:
其他好文 时间:
2014-09-01 01:40:22
阅读次数:
246
方法一:从根节点开始,将每层节点压入一个数组,cur代表当前访问节点,last代表下一层第一个节点,遍历数组可得层次遍历;代码: 1 #include 2 #include 3 #include 4 using namespace std; 5 6 template 7 class ...
分类:
其他好文 时间:
2014-08-31 21:20:01
阅读次数:
326
题意:题目意思是给出后缀表达式,可以通过栈来计算表达式的值,即转化为中缀表达式。然后如果现在不用栈,而是用队列来操作,即每遇到一操作符时,进行两次pop和一次push。(这里注意,先pop出来的作为第二操作数,操作符假设是不满足交换律和结合律的)因为队列的pop和push,与栈的不同么,所以,问队列的输入应该是怎样的,才能和给定的输入用栈来计算,所得值相同。(即转化为相同的中缀表达式)
思路:先...
分类:
其他好文 时间:
2014-08-24 01:52:21
阅读次数:
230
题意:给出一列数字,可以构成完全二叉搜索树,求构成的完全二叉搜索树的层次遍历
思路:构建树的过程可以看做是不断寻找子树根节点的过程
根据完全二叉树的特征,可以通过确定左子树的子孙节点个数来确定对应的根节点下标
递归构建即可。
代码:
#include
#include
#include
#include
#include
using namespac...
分类:
其他好文 时间:
2014-08-19 10:56:24
阅读次数:
206
二叉树的二叉树节点的描述publicclassBiTNode{chardata;BiTNodelc,rc;}下面我们分别用递归和非递归实现前、中、后序遍历,以及使用了两种方法来进行层次遍历二叉树,一种方法就是使用STL中的queue,另外一种方法就是定义了一个数组队列,分别使用了front和rear两个数组的下标来..
分类:
其他好文 时间:
2014-08-16 01:11:30
阅读次数:
203
最近复习数据结构中的二叉树的相关问题,在这里整理一下
这里包括:
1、二叉树的先序创建
2、二叉树的递归先序遍历
3、二叉树的非递归先序遍历
4、二叉树的递归中序遍历
5、二叉树的非递归中序遍历
6、二叉树的递归后序遍历
7、二叉树的非递归后序遍历
8、二叉树的层次遍历
这里感谢博客http://blog.csdn.net/skylinesky/article/details/...
分类:
编程语言 时间:
2014-08-10 18:46:10
阅读次数:
456
层次遍历的算法参考自【编程之美】,源代码中使用了stl的vector实现动态扩展属性,在java里面List的特点很符合要求,故将此处改为ArrayList。...
分类:
编程语言 时间:
2014-07-22 22:38:35
阅读次数:
427
题解:可以根据输入的字符串画一个二叉树出来,然后层次遍历一下就和输出结果顺序一样,所以根据输入把大写字母当做两个小写字母的根节点,将节点即运算结果当做另一个小写字母放进栈里,和另一个字母组建生成新的树放进栈里,直到最后的的根节点也放进了栈里,开始层次遍历,用数组模拟队列进行遍历,注意因为结果的顺序是从右到左,所以注意遍历的方向问题。#include
#include
#include
#in...
分类:
其他好文 时间:
2014-07-22 17:49:42
阅读次数:
243
数据结构实验之求二叉树后序遍历和层次遍历
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
已知一棵二叉树的前序遍历和中序遍历,求二叉树的后序遍历。
输入
输入数据有多组,第一行是一个整数t (t
输出
每组第一行输出二叉树的后序遍历序列,第二行输出二叉树的层次遍历序列
示例输入
2
abde...
分类:
其他好文 时间:
2014-07-20 15:12:41
阅读次数:
260