栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java learn 集合框架 二叉树(自我理解阐述)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java learn 集合框架 二叉树(自我理解阐述)

写在之前:
相比学习利用C语言的数据结构 运用Java的数据结构确实简单了一些 原因是一些东西是已经封装好的 直接调用就行 但是二叉树没有封装 个人认为还是比前者好学一点…

1、二叉树概念:
二叉树由各种节点组成
二叉树特点:
每个节点都可以有左子节点,右子节点
每一个节点都有一个值

2、二叉树排序-插入数据
插入基本逻辑是,小、相同的放左边,大的放右边
第一个数在根节点 之后相比较挨个挨个 执行插入基本逻辑
图示:

3、代码示例:
建立 二叉树

public Node leftNode;
	public Node rightNode;
	public Object value;
	
	public void add(Object v)
	{
		if(value==null)
		{
			value=v;
		}
		else
		{
			if((Integer)v<=(Integer)value)
			{
				if(leftNode==null)
					leftNode=new Node();
				leftNode.add(v);
			}
			else
			{
				if(rightNode==null)
					rightNode=new Node();
				rightNode.add(v);
			}
		}
	} 

1、分别建立左右两个节点(注意是利用类类型 定义引用 便于创建对象)
之后用Object这个类 定义一个值 由于Object类是所有类的父类 便于插入各种类型数据
2、先判定value是否为空 空直接插入当根节点 不空则做判断——要插入的数和根节点(上一节点)作比较是否大雨或小于相同 这样做是为判断出是左节点还是右节点 之后再看节点是否为空 不为空插不进去 空则新建对象 之后在递归调用该方法时 value才是空值便于插入 因为新对象所调用的方法起始都是空值 (相当于刷新)

3、中序遍历之后再输出(排序在创建树的时候就已经完成了)

   public List EachAdd()
      {
    	  ArrayList ob=new ArrayList<>();
    	  if(leftNode!=null)
    	  {
    		  ob.addAll(leftNode.EachAdd());
    	  }
    	  ob.add(value);
    	  
    	  if(rightNode!=null)
    	  {
    		  ob.addAll(rightNode.EachAdd());
    	  }
    	  return ob;
      }
 

之前的 对于左右节点的新建对象 实质是建立一个个对象 之后EachAdd 这个方法中进行实例化一个容器对象进行存储—— ob.add(value);是挨个存储 两条判断语句则是在对左右两节点的值进行容器合并。

以下主方法:

public static void main(String[] args) {
		int random[]=new int[] {12,34,43,45,65,56,67,23,1,2};
		Node node = new Node();
		for (int i : random) {
			node.add(i);
		}
	System.out.println(node.EachAdd());
	}
转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号