数组表示二叉树- 会飞的鱼[kingcat2010]雪压青松松不倒,泰山压顶不弯 ...
package org.bintree;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 以数组方式实现二叉树
 * 
 * @author Administrator
 * 
 */
public class BiTree {

	public static void main(String[] args) {
		int Data; // 读取输入值的临时变量
		int Index = 1;//数组下标变量
		System.out.println("请输入二叉树数据元素(输入0退出!):");
		Scanner console = new Scanner(System.in);
		do {
			System.out.print("Data" + Index + ":");
			Data = console.nextInt();
			BiTreeArray.Create(Data);
			Index++;
		} while (Data != 0);
		BiTreeArray.printAll();//输入二叉树的节点值
	}

	static class BiTreeArray {
		static final int MaxSize = 16;
		static int[] ABiTree = new int[MaxSize];

		public BiTreeArray() {
			Arrays.fill(ABiTree, 0);
		}

		/**
		 * 创建一棵二叉树,核心部分
		 * @param Data
		 */
		public static void Create(int Data) {
			int level = 1;// 树的层数,从层1开始建立
			while (ABiTree[level] != 0)// 判断是否存在子树
			{
				if (Data < ABiTree[level])// 判断是左子树还是右子树
					level = level * 2;// 左子树
				else
					level = level * 2 + 1;// 右子树
			}
			ABiTree[level] = Data;// 将元素值插入节点
		}

		/**
		 * 输出二叉树所有的节点
		 */
		public static void printAll() {
			System.out.println("二叉树节点值依次为:");
			for (int i = 0; i < MaxSize; i++) {
				System.out.println("Node" + i + ":[" + ABiTree[i] + "}");
			}
		}
	}
}

郑重声明:资讯 【数组表示二叉树- 会飞的鱼[kingcat2010]雪压青松松不倒,泰山压顶不弯 ...】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——