zoukankan      html  css  js  c++  java
  • java: Comparable比较器,定义二叉操作类

    //定义二叉操作类
    
    class BinaryTree{
    	
    	class Node{
    		private Node left; //左指数
    		private Node right; //右指数
    		private Comparable data;
    		
    		public 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); //向下继续判断,指针指向下一个
    				}
    			}
    			System.out.println("this.data="+this.data);
    			System.out.println("newNode.data="+newNode.data);
    			System.out.println("----------------->");
    			
    			//放在右边
    			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);
    			if(this.right != null) //存在右指数
    			{
    				this.right.printNode(); //继续查找下面的右指数,指针指向下一个
    			}
    		}
    		
    	} 
    	
    	private Node root;
    	
    	public void add(Comparable data) //接受数据
    	{
    		Node newNode  = new Node(data);
    		if(this.root == null)
    		{
    			this.root = newNode; //设为根节点
    		}else{
    			this.root.addNode(newNode);
    		}
    	}
    	
    	public void print()
    	{
    		//输出全部的根节点数据
    		this.root.printNode();
    	}
    	
    }
    
    
    public class comparaDemo3 {
    
    	public static void  main(String args[])
    	{
    		BinaryTree bt = new BinaryTree();
    		bt.add(3);
    		bt.add(4);
    		bt.add(8);
    		bt.add(1);
    		bt.add(6);
    		bt.add(3);
    		bt.add(18);
    		bt.print();
    		
    	}
    }
    

      

    一般不推荐此方法,直接推荐,implements Comparable,实现ComparaTo()方法

  • 相关阅读:
    CTF MISC-USB流量分析出题记录
    python-flask-ssti(模版注入漏洞)
    如何写一个Xss Bot
    nginx解析漏洞,配置不当,目录遍历漏洞环境搭建、漏洞复现
    weblogic在linux和window下的安装
    apache-日志-记录post数据
    条件竞争漏洞
    arpspoof+driftnet+ ARP欺骗简单图片抓取
    图片隐写--XOR&OR&and
    qcow2虚拟磁盘映像转化为vmdk
  • 原文地址:https://www.cnblogs.com/achengmu/p/6999222.html
Copyright © 2011-2022 走看看