基于Comparable接口实现的二叉树操作
2012-10-26 15:07
176 查看
class BinaryTree{ class Node{ //声明一个节点类 private Comparable data; //保存具体的内容 private Node left ; private Node right ; public void addNode(Node newNode){ if(newNode.data.compareTo(this.data) < 0){ //要确定是放在左子树还是右子树 if(this.left == null){ this.left = newNode; }else{ this.left.addNode(newNode); } } if(newNode.data.compareTo(this.data) > 0){ if(this.right ==null){ this.right = newNode; }else{ this.right.addNode(newNode); } } } public void printNode(){ //输出时采用中序便历 if(this.left != null){ this.left.printNode(); } System.out.println(this.data + "\t"); //输出根节点 if(this.right != null){ this.right.printNode(); } } } private Node root; //根元素 public void add(Comparable data){ Node newNode = new Node(); //每传入一个新的内容就声明一个根节点 newNode.data = data ; if(root == null){ //如果是第一个元素就设置为根元素 root = newNode; }else{ root.addNode(newNode); //调用函数确定节点放的位置 } } public void print(){ this.root.printNode(); } } public class ComparableDemo{ public static void main(String args[]){ BinaryTree bt = new BinaryTree(); bt.add(8); bt.add(3); bt.add(3); bt.add(5); bt.add(7); bt.add(1); bt.add(0); bt.add(6); bt.add(6); bt.add(9); System.out.println("排序之后的结果:"); bt.print(); } }
相关文章推荐
- 基于Comparable接口实现二叉树操作
- 基于Comparable接口实现的二叉树操作
- 二叉树基于遍历的进一步操作c++实现
- 使用Flask+MongoDB实现基于REST的接口简单操作
- PHP基于非递归算法实现先序、中序及后序遍历二叉树操作示例
- 八.二叉树各种操作的C语言实现 深度遍历求深度,广度遍历求深度,交换左右子树,求叶子节点数
- java基于poi实现快速操作Excel的工具[v2.0.0]
- 短信猫开发接口只用操作数据库即可实现短信收发
- 【Java学习笔记】Comparable接口的实现和使用
- 二叉树的部分操作实现
- 实现Comparable接口对树形结构数据进行排序
- 数据结构面试之五—二叉树的常见操作(递归实现部分)
- .net企业级架构实战之5——基于接口的访问层实现
- 用xfire实现基于java的webservice接口调用
- 二叉树的遍历算法实现、以及所有简单操作
- java基于正则表达式实现时间日期的常用判断操作实例
- 二叉树基本操作的程序实现
- 基于Struts2和hibernate的WebSocket聊天室的实现教程四:实现登录接口
- Effective Java - 对于所有对象都通用的方法 - 考虑实现 Comparable 接口
- 基于Java的MISC与SP短信服务双向接口的实现