Java实现二叉树
来源:互联网 发布:会计应对大数据时代 编辑:程序博客网 时间:2024/06/06 18:52
本案例需要完成的任务定义如下:实现一个二叉树,实现增加节点和树的遍历等功能。
定义“二叉树”节点:
对于树节点,关键要素是节点自身数值data、左子节点left和右子节点right。
public class TNode {//元素类型为int的节点private int data;private TNode left;private TNode right;//定义构造器public TNode(int i, TNode lft, TNode rt){data = i;left = lft;right =rt;}public TNode(int i){this(i,null,null);}public TNode(){this(0,null,null);}//更改节点数值public void setData(int i){data = i;}//读取节点数值public int getData(){return data;}//更改left子节点public void setLeft(TNode tn){left = tn;}//读取left子节点public TNode getLeft(){return left;}//更改right子节点public void setRight(TNode tn){right = tn;}//读取right子节点public TNode getRight(){return right;}//打印节点的值public void printTNode(){System.out.print(data+"->");}}
实现“二叉树”的遍历:
应用递归实现二叉树遍历是很好的思路。遍历的方法按照顺序不同可分为前序遍历、中序遍历和后序遍历,分别表示最先遍历父节点(顺序:父节点->left节点->right节点)、中间遍历父节点和最后遍历父节点。本例采用前序遍历。
package tree;public class BinaryTree {//树的基本元素:根节点TNode root;//构造器:指定根节点public BinaryTree(TNode rt){root = rt;}public BinaryTree(){root = null;}//开始递归遍历,采用前序遍历public void traverseTree(TNode rt){if(rt!=null)rt.printTNode();if(rt.getLeft()!=null)traverseTree(rt.getLeft());if(rt.getRight()!=null)traverseTree(rt.getRight());}//在树中增加节点tn,指定相应的父节点father;public void addTNode(TNode tn,TNode father){//当子节点数量少于或等于1时允许插入tn,插入顺序先left后rightif(father == null){father = tn;}if(father.getLeft()==null){father.setLeft(tn);}else if(father.getRight()==null){father.setRight(tn);}else{System.out.println("illegal, already have two child nodes!");}}}
测试程序:
测试了生成二叉树、增加子节点以及遍历二叉树等功能,运行正常。
package tree;public class TraverseTree {public static void main(String[] args) {// TODO Auto-generated method stubTNode root = new TNode(99);BinaryTree btr = new BinaryTree(root);TNode tn1 = new TNode(1);TNode tn2 = new TNode(2);TNode tn3 = new TNode(3);TNode tn4 = new TNode(4);btr.addTNode(tn1, root);btr.addTNode(tn2, root);btr.addTNode(tn3, tn1);btr.addTNode(tn4, tn1);btr.traverseTree(root);}}
0 0
- JAVA 实现二叉树
- 二叉树 java实现
- 二叉树实现-java
- JAVA 实现二叉树。
- 二叉树Java实现
- java实现二叉树
- 二叉树Java实现
- Java实现二叉树
- Java实现二叉树
- 二叉树java实现
- java 实现二叉树
- 二叉树--java实现
- Java实现二叉树
- java实现二叉树
- 二叉树Java实现
- java实现二叉树
- 二叉树java实现
- java实现二叉树
- Android开发学习笔记:TextView的属性详解 | android:duplicateParentState属性解释
- 获取文件行数
- 软件设计之旅(2)软件需求规格说明
- CodeForces 632E Thief in a Shop(DP|完全背包)
- Codeforces 659E 找环+(并查集/dfs)
- Java实现二叉树
- C++作业2:银行
- sublime text在ubuntu平台下的中文输入问题及解决
- Flex+BlazeDS+IntelliJ IDEA整合开发系列一之起步demo
- 【解题报告】Codeforces Round #303 (Div. 2)
- 08-maven同时下载源码
- 解决安卓TextView高度和textSize大小不一致问题 - 木杉是天才
- [BZOJ2461][BeiJing2011]符环(记忆化搜索)
- LeetCode之4---Median of Two Sorted Arrays