数据类型之二叉树小结

[size=large]之前学习了数据类型中的链表,在数据类型中还有一种树形结构,而二叉树即是一种数。二叉树跟双向链表有些相似,二叉树也有父结点和子结点,只是子结点有两个,一个是左结点,一个是右结点。[/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] :)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值