📄 tree01.java
字号:
// =============== Program Description ===============
// 程序名称: tree01.java
// 程序目的: 依序输入元素值,以数组方式建立二元
// 树,并输出节点内容。
// Written By Kuo-Yu Huang. (WANT Studio.)
// ===================================================
import ConsoleReader.*; // 导入已定义的数据输入类
public class tree01
{
public static void main (String args[])
{
int i; // 循环计数变量
int Index = 1; // 数据索引变量
int Data; // 读入输入值所使用的暂存变量
BTreeArray BTree = new BTreeArray(); // 声明二叉树数组
System.out.println("Please input the elements of binary tree(Exit for 0):");
ConsoleReader console = new ConsoleReader(System.in);
do // 读取输入值
{
System.out.print("Data "+Index+" : ");
Data = console.readInt();
BTree.Create(Data); // 建立二叉树
Index++;
}while ( Data != 0 );
BTree.PrintAll(); // 输出二叉树的内容
}
}
class BTreeArray
{
int MaxSize = 16;
int[] ABTree = new int[MaxSize];
public void BTreeArray()
{
int i; // 循环计数变量
for ( i=0 ; i<MaxSize ; i++ )
ABTree[i] = 0;
}
//----------------------------------------------------
// 建立二叉树
//----------------------------------------------------
public void Create(int Data)
{
int i; // 循环计数变量
int Level; // 树的阶层数
Level=1; // 从阶层1开始建立
while ( ABTree[Level] != 0) // 判断是否有子树存在
{
if (Data < ABTree[Level] ) // 判断是左子树还是右子树
Level = Level * 2; // 左子树
else
Level = Level * 2 + 1; // 右子树
}
ABTree[Level] = Data; // 将元素值存入节点
}
//----------------------------------------------------
// 打印所有二叉树节点数据
//----------------------------------------------------
public void PrintAll()
{
int i; // 循环计数变量
System.out.println("The Binary Tree Node Data : ");
for ( i=1 ; i<MaxSize ; i++ )
{
System.out.print("Node"+i);
System.out.println(" : ["+ABTree[i]+"]");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -