Java 数据结构学习 之 二叉树及相关

首先,申明一点,此博客用于仅用于平时学习、总结及复习。
最近老师出了一个有关二叉树的迭代器的题目,总是想不明白,于是查了很多资料,现将一些重要知识总结如下:
关于数据结构 树这一章重要的知识点有两点:二叉树和Huffman树
  1. 二叉树创建及遍历

。。。。。。待填
二叉树输入结点 insert()
public void insert(Object data){
root=insert(root,data);
}
public(应该改为private) Node insert(Node node,Object data){ //这一部分要好好的学习
if(node==null){
node=new Node(data);
}else if(node.data<=data){
insert(node.rchild,data);
}else{
insert(node.lchild,data);
}
return node;
}

/// 创建二叉树
public void buildTree(Object[] obj){
for(Object data:obj){
insert(data);
}
}

/// 先序遍历二叉树
public void travesalBTNode(){
taversalBTNode(root);
}
private Node travesalBTNode(Node node){
if(node==null) return;
System.out.println(“Node.data=”+data);
travesal(node.lchild);
travesal(node.rchild);
}

     insert()为什么需要 Node node 参数?值传递
     注意它的封装性和访问控制权限,类以及 BinaryTree 的函数都相应有
     privatepublic 方法来实现很好的封装和访问控制,这种方式以后自己要多加学习,积极运用。

 2. Huffman树的结点和创建

///哈弗曼树结点定义
public class Node implements comparable{
private Object data;
private Node lchild;
private Node rchild;
public Node(){}
public Node(Object data){//构造函数
this.data=data;
lchild=rchild=null;
}
public Object getData(){
return data;
}
public void setData(Object data){
this.data=data;
}
public Node getLeftChild() {
return lchild;
}

public void setLeftChild(Node lchild) {
this.lchild = lchild;
}
public Node getRightChild() {
return rchild;
}

public void setRightChild(Node rchild) {
this.rchild = rchild;
}

public Object compareTo(Object o){//重写comparable类的compareTo方法
    Node that=(Node)o;
    Object result=this.data-that.data;
    return result>0?1:result==0?0:-1;
}

}
“`
有待完善。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值