您的位置:首页 > 编程语言 > Java开发

二叉树的实现(Java语言描述)

2014-10-19 21:16 501 查看
实现二叉树 并先序遍历之。

package 二叉树的实现;

public class BinaryTree<T> {

class Node {
int value; // 该节点存储的值。
Node leftChild; // 指向左子节点的引用。
Node rightChild; // 指向右子节点的引用。
Node(int value) {
this.value = value;
leftChild = null;
rightChild = null;
}
}
private Node root; // 根节点。
BinaryTree() {
root = null;
}
BinaryTree(int[] arr) {
for (int i : arr) {
insert(i);
}
}
private void insert(int value) {
root = insert(root, value);
}
private Node insert(Node node, int value) {
if (node == null) {
node = new Node(value);
} else {
if (value <= node.value) {
node.leftChild = insert(node.leftChild, value);
} else {
node.rightChild = insert(node.rightChild, value);
}
}
return node;
}
private void visit(Node node) {
if (node == null) {
return;
}

int value = node.value;
System.out.println(value);
}
private void preOrderTravels(Node node) {
if (node == null) {
return;
} else {
visit(node);
preOrderTravels(node.leftChild);
preOrderTravels(node.rightChild);
}
}
public void preOrderTravels() {
preOrderTravels(root);
}
}


package 二叉树的实现;

import java.util.*;

public class Treetest {

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] arr = new int[10];
int m,n;
for(int i=0; i<10; i++){
arr[i] = scan.nextInt();
}
BinaryTree<Integer> tree = new BinaryTree<Integer>(arr);
tree.preOrderTravels();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: