[size=large]之前学习了数据类型中的链表,在数据类型中还有一种树形结构,而二叉树即是一种数。二叉树跟双向链表有些相似,二叉树也有父结点和子结点,只是子结点有两个,一个是左结点,一个是右结点。[/size]
[color=red]下面我们测试一下二叉树:[/color]
[size=medium]这样一个简单的二叉树就完成了。[/size] :)
public class TreeNode<E> {
//左结点、右结点、父结点
private TreeNode<E> left;
private TreeNode<E> right;
private TreeNode<E> parent;
private E data;
//结点的构造器,存储入数据
public TreeNode(E e){
this.setData(e);
}
//设置父结点的方法
public void setParent(TreeNode<E> parent) {
this.parent = parent;
}
//得到父结点的方法
public TreeNode<E> getParent() {
return parent;
}
//设置左结点的方法
public void setLeft(TreeNode<E> left) {
this.left = left;
}
//得到左结点的方法
public TreeNode<E> getLeft() {
return left;
}
//设置右结点的方法
public void setRight(TreeNode<E> right) {
this.right = right;
}
//得到右结点的方法
public TreeNode<E> getRight() {
return right;
}
//存储入数据的方法
public void setData(E data) {
this.data = data;
}
//得到数据的方法
public E getData() {
return data;
}
}
[color=red]下面我们测试一下二叉树:[/color]
public class TreeNodeTest {
/**
* @param args
*/
public static void main(String[] args) {
paintTree(CreatTree());
}
/**
* 建树
* @return:树的根节点
*/
public static TreeNode<String> CreatTree(){
TreeNode<String> root = new TreeNode<String>("媒");
root.setParent(root);
TreeNode<String> left = new TreeNode<String>("杰");
TreeNode<String> right = new TreeNode<String>("李");
root.setLeft(left);
root.setRight(right);
left.setParent(root);
right.setParent(root);
TreeNode<String> left_left = new TreeNode<String>("蓝");
TreeNode<String> left_right = new TreeNode<String>("数");
left.setLeft(left_left);
left.setRight(left_right);
left_left.setParent(left);
left_right.setParent(left);
TreeNode<String> right_left = new TreeNode<String>("班");
TreeNode<String> right_right = new TreeNode<String>("勇");
right.setLeft(right_left);
right.setRight(right_right);
right_left.setParent(right);
right_right.setParent(right);
return root;
}
/**
* 打印数中的数据
* @param root:树的根节点
*/
public static void paintTree(TreeNode<String> root){
if(root!=null){
String s = root.getData();
System.out.println("数据是:"+s);
TreeNode<String> node1 = root.getLeft();
TreeNode<String> node2 = root.getRight();
paintTree(node1);
paintTree(node2);
}
}
}
[size=medium]这样一个简单的二叉树就完成了。[/size] :)