java之二叉树的创建和递归遍历
来源:互联网 发布:听相声的软件 编辑:程序博客网 时间:2024/06/06 10:47
每一个节点
package tree; /** * @author wangpei * @version *创建时间:2017年3月5日 上午11:10:34 * 树节点 */public class TreeNode { protected char data; protected TreeNode Lchild; protected TreeNode Rchild; public TreeNode(char data){ this.data=data; } public char getData() { return data; } public void setData(char data) { this.data = data; } public TreeNode getLchild() { return Lchild; } public void setLchild(TreeNode lchild) { Lchild = lchild; } public TreeNode getRchild() { return Rchild; } public void setRchild(TreeNode rchild) { Rchild = rchild; }}
树节点:
package tree; /** * @author wangpei * @version *创建时间:2017年3月5日 上午11:11:54 * 递归树节点遍历(先,中,后) */public class TreeExercise { protected TreeNode root; // 树的根节点 protected int size; // 树长度 protected char[] data; // 树的数据 public TreeExercise(char[] data) { this.data = data; size = data.length; root = createTree(0); } public TreeNode createTree(int index) { // 采用递归生成二叉树 if (index >= size) return null; if (data[index] == '0') return null; TreeNode node = new TreeNode(data[index]); node.setLchild(createTree(2 * index + 1)); node.setRchild(createTree(2 * index + 2)); return node; } /*先序递归遍历二叉树*/ public void PrintOrder(TreeNode root){ if(root!=null){ System.out.print(root.getData()+".."); PrintOrder(root.Lchild); PrintOrder(root.Rchild); } } /*中序遍历二叉树*/ public void InOrder(TreeNode root){ if(root!=null){ InOrder(root.Lchild); System.out.print(root.getData()+".."); InOrder(root.Rchild); } } /*后续遍历二叉树*/ public void PostOrder(TreeNode root){ if(root!=null){ PostOrder(root.Lchild); PostOrder(root.Rchild); System.out.print(root.data+".."); } } /*输出二叉树的值*/ public static void print(TreeNode root){ System.out.println(root.data); } public static void main(String[] args) { char[] chars = new char[] {'A', 'B', 'C', '0', 'D', 'E', 'F','0','0','G','0','0','0','H','0'}; TreeExercise ec=new TreeExercise(chars); ec.PostOrder(ec.getRoot()); // System.out.println(ec.getRoot().data); // System.out.println(root.Lchild.data); } public TreeNode getRoot() { return root; } public void setRoot(TreeNode root) { this.root = root; }}
0 0
- java之二叉树的创建和递归遍历
- 二叉树的递归创建和遍历
- 二叉树的创建和递归遍历
- 二叉树的创建和递归遍历
- 数据结构之二叉树的递归创建、递归遍历
- java 二叉树的递归遍历和非递归遍历
- Java实现二叉树的创建、递归/非递归遍历
- 二叉树递归创建和递归遍历
- 二叉树创建、遍历的递归和非递归实现
- 二叉树的创建及递归和非递归遍历
- 二叉树的创建,递归和非递归遍历
- 二叉树的创建和递归与非递归遍历
- Java创建二叉树及其遍历的递归和非递归实现
- 二叉树的递归和非递归遍历(java)
- 二叉树的先序递归创建和遍历
- 二叉树的创建和递归遍历和非递归遍历
- 二叉树的创建,递归遍历,非递归遍历
- 二叉树的创建,递归遍历以及非递归遍历
- 训练11-HTML 为多个元素使用CSS类定义样式
- 如何利用GitHub进行团队开发
- Android添加联系人信息并读取
- Ajax(二)
- ajax前台js代码实现
- java之二叉树的创建和递归遍历
- ubuntu server版安装图形界面,以及图形界面和命令行的相互切换
- 蓝桥杯第六届 让我怎能过大年(dfs)
- 训练12-HTML 设置标签的字体大小
- Effective Java读书笔记——第二章 创建和销毁对象
- SpringMVC开发常见注解
- vmware 端口映射
- MAMP PRO 4.1.1 破解
- UVALive 4593 Exclusive Access 2(状压dp)