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

Java实现二叉树的存储

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

Java实现二叉树的存储

二叉树的存储方式很多,在数据结构中,我们习惯用链表来表示二叉树,这样在删除或者增加节点时,会非常方便且具有弹性。当然,也可以使用一维数组这样的连续存储空间来表示二叉树,不过在对树的中间节点进行插入于删除操作时,可能要大量移动数组中节点的存储位置来反应树节点的变动。我们将分别来介绍数组和链表这两种存储方式。

package Tree;
import java.io.*;
public class ch0601 {
	public static void main(String args[]) {
		int i,level;
		int data[]= {6,3,5,9,7,8,4,2};
		int btree[]=new int[16];
		for(i=0;i<16;i++) btree[i]=0;
		System.out.println("原始数组的内容:");
		for(i=0;i<8;i++)
			System.out.print(data[i]+" ");
		System.out.println();
		for(i=0;i<8;i++) {
			for(level=1;btree[level]!=0;) {
				if(data[i]>btree[level])
					level=level*2+1;
				else
					level=level*2;
			}
			btree[level]=data[i];
		}
		System.out.println("二叉树的内容:");
		for(i=1;i<16;i++)
			System.out.print(btree[i]+" ");
		System.out.println();
	}
}

通常以数组表示法来存储二叉树,如果越接近满二叉树,则越节省空间,如果是歪斜树则最浪费空间。另外要增删数据较麻烦,必须重新建立二叉树。

由于二叉树最多只能有两个子节点,就是分支度小于或等于2。而所谓二叉树的链表表示法,就是利用链表来存储二叉树。在Java语言中,我们可以定义TreeNode类和BinaryTree类,其中TreeNode代表二叉树中的一个节点。定义如下:

class TreeNode{
	int value;
	TreeNode left_Node;
	TreeNode right_Node;
	public TreeNode(int value){
		this.value=value;
		this.left_Node=null;
		this.right_Node=null;
		}
}
package Tree;
import java.io.*;
class TreeNode{
	int value;
	TreeNode left_Node;
	TreeNode right_Node;
	public TreeNode(int value) {
		this.value=value;
		this.left_Node=null;
		this.right_Node=null;
	}
}
class BinaryTree{
	public TreeNode rootNode;
	public BinaryTree(int[] data) {
		for(int i=0;i 

我们使用链表来表示二叉树的优点时对节点的增加于删除相当容易,缺点是很难找到父节点,除非在每一节点多增加一个父字段。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/643014.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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