二叉树实例
public class BinaryTree { class Node { //声明一个节点类 private Comparable data; //保存具体内容 private Node left; //保存左子树 private Node right; //保存右字数 private Node(Comparable data) { this.data=data; } /** * 添加方法 */ public void addNOde(Node newNode){ if(newNode.data .compareTo(this.data)<0){ if(this.left == null){ this.left=newNode; //放在左子树 }else{ this.left.addNOde(newNode); } }else{ if(this.right == null){ //放在右子树 this.right=newNode; }else{ this.right.addNOde(newNode); } } } /** * 输出信息,输出时采用中序遍历 */ public void printNode(){ if(this.left!=null){ this.left.printNode(); //先输出左子树 } System.out.print(this.data +"\t"); if(this.right != null){ //再输出右子数 this.right.printNode(); } } } private Node root ; //根元素 /** * 添加的方法 */ public void add(Comparable data){ Node newNode = new Node(data); //每传入一个新的内容,就声明一个节点 if(root == null){ root = newNode; //如果是第一个元素,设置成根节点 }else{ root.addNOde(newNode); //确定节点是放在左面还是右面 } } /** * 打印方法 */ public void print (){ if(this.root!=null){ //数据不为空 ,输出内容 this.root.printNode(); } } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步