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

来源:互联网 发布:手机淘宝装修图片尺寸 编辑:程序博客网 时间:2024/06/05 00:11
首先,申明一点,此博客用于仅用于平时学习、总结及复习。最近老师出了一个有关二叉树的迭代器的题目,总是想不明白,于是查了很多资料,现将一些重要知识总结如下:关于数据结构 树这一章重要的知识点有两点:二叉树和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;}

}
“`
有待完善。。。

0 0
原创粉丝点击