JAVA数据结构---二叉树入门
来源:互联网 发布:rails application.js 编辑:程序博客网 时间:2024/04/27 17:07
本程序分为四个文件:
节点类:Node.java
二叉树类:BinaryTree.java
访问类:Visit.java
主类测试:MainTest.java
(1)Node.java
public class Node<T> { public T data; private Node<T> left; private Node<T> right; // 初始化构造 public Node() { left = null; right = null; } public Node(T tt, Node<T> lef, Node<T> rig) { data = tt; left = lef; right = rig; } // get方法 public T getT() { return data; } public Node<T> getLeft() { return left; } public Node<T> getRight() { return right; }}
(2)BinaryTree.java
public class BinaryTree<T> { private Node<T> root; private void preOrder(Node<T> t, Visit vs) { if (t != null) { vs.print(t.data); preOrder(t.getLeft(), vs); preOrder(t.getRight(), vs); } } private void midOrder(Node<T> t, Visit vs) { if (t != null) { midOrder(t.getLeft(), vs); vs.print(t.data); midOrder(t.getRight(), vs); } } private void postOrder(Node<T> t, Visit vs) { if (t != null) { postOrder(t.getLeft(), vs); postOrder(t.getRight(), vs); vs.print(t.data); } } public BinaryTree() { root = null; } public BinaryTree(T tt, BinaryTree<T> lef, BinaryTree<T> rig) { Node<T> l, r; if (lef == null) l = null; else l = lef.root; if (rig == null) r = null; else r = rig.root; root = new Node<T>(tt, l, r); } public void preOrder(Visit vs) { preOrder(root, vs); } public void midOrder(Visit vs) { midOrder(root, vs); } public void postOrder(Visit vs) { postOrder(root, vs); }}
(3)Visit.java
public class Visit { public void print(Object item) { System.out.print(item + " "); }}
(4)MainTest.java
public class MainTest { public static void main(String[] args) { BinaryTree<String> g = new BinaryTree<String>("G", null, null); BinaryTree<String> d = new BinaryTree<String>("D", null, g); BinaryTree<String> b = new BinaryTree<String>("B", d, null); BinaryTree<String> e = new BinaryTree<String>("E", null, null); BinaryTree<String> f = new BinaryTree<String>("F", null, null); BinaryTree<String> c = new BinaryTree<String>("C", e, f); BinaryTree<String> a = new BinaryTree<String>("A", b, c); Visit vs = new Visit(); System.out.println("前序遍历的结果是:"); a.preOrder(vs); System.out.println(); System.out.println("中序遍历的结果是:"); a.midOrder(vs); System.out.println(); System.out.println("后序遍历的结果是:"); a.postOrder(vs); System.out.println(); }}
(5)测试结果
前序遍历的结果是:A B D G C E F 中序遍历的结果是:D G B A E C F 后序遍历的结果是:G D B E F C A
0 0
- JAVA数据结构---二叉树入门
- 数据结构入门--线索二叉树
- java数据结构:二叉树
- JAVA 数据结构 二叉树
- java数据结构----二叉树
- java数据结构 二叉树
- java数据结构------二叉树
- 【Java数据结构】二叉树
- JAVA数据结构:二叉树
- Java数据结构--二叉树
- java数据结构之二叉树
- java--数据结构--二叉树遍历
- java数据结构之二叉树
- java实现二叉树数据结构
- 数据结构入门---初识二叉树(上)
- 数据结构入门---初始二叉树(下)
- 数据结构入门——完全二叉树
- java数据结构--二叉树与查找树
- MFC截获键盘输入值
- 动态设置ViewPager允许/禁止滑动
- Xcode制作Bundle文件很简单
- Objective-C @encode关键字
- 错误: 需要class, interface或enum
- JAVA数据结构---二叉树入门
- 中缀表达式转后缀表达式的方法
- 从拨号音分析拨号号码
- view事件分发机制
- Quartz SimpleTrigger Demo
- 饿了么移动APP的架构演进
- 使用Glide加载图片的时候报错
- servlet 中bean注入
- 到设定的时间让程序退出登录