java实现二叉树的常见操作
树型结构是最常见的非线性结构,其中二叉树最为常见。今天我主要就是用java来实现一下树的一些常见操作。
首先需要一个用来存储树节点值的javabean:
view plain
public class TreeBean {
private int nodeValue;
public int getNodeValue() {
return nodeValue;
}
public void setNodeValue(int nodeValue) {
this.nodeValue = nodeValue;
}
}
然后是树的节点bean:
view plain
public class TreeNode{
private TreeBean data;
private TreeNode leftNode;
private TreeNode rightNode;
//构造函数
public TreeNode(){
data = new TreeBean();
}
public TreeBean getData() {
return data;
}
public void setData(TreeBean data) {
this.data = data;
}
public TreeNode getLeftNode() {
return leftNode;
}
public void setLeftNode(TreeNode leftNode) {
this.leftNode = leftNode;
}
public TreeNode getRightNode() {
return rightNode;
}
public void setRightNode(TreeNode rightNode) {
this.rightNode = rightNode;
}
}
最后是Tree的主体:
view plain
public class Tree {
//树的根节点
private TreeNode root;
public TreeNode getRoot() {
return root;
}
public void setRoot(TreeNode root) {
this.root = root;
}
//无参构造函数
Tree(){}
Tree(int nodeValue){
root = new TreeNode();
TreeBean nodeBean = new TreeBean();
nodeBean.setNodeValue(nodeValue);
root.setData(nodeBean);
}
/**
* 销毁树,将树置空。
* @author letthinking
* @param tree
* @return
*/
public static Tree destroy(Tree tree){
return null;
}
/**
* 给树插入数据
* @author letthinking
* @param root
* @param node
*/
public void insert(TreeNode root,TreeNode node){
//如果根节点为空,则赋值给根节点
if(root == null){
root = node;
}else{
//该节点与它的双亲节点比较,如果小于双亲节点,就将它作为左孩子,否则为右孩子。
if(node.getData().getNodeValue() < root.getData().getNodeValue()){
//判断该节点是否为空,如果不为空就继续递归。
if(root.getLeftNode() == null){
root.setLeftNode(node);
}else{
insert(root.getLeftNode(),node);
}
}else{
if(root.getRightNode() == null){
root.setRightNode(node);
}else{
insert(root.getRightNode(),node);
}
}
}
}
/**
* 将树的所有节点清空
* @author letthinking
* @param root 树的根节点
*/
public void clearTree(TreeNode root){
if(root.getData() == null){
if(root.getLeftNode() != null){
clearTree(root.getLeftNode());
}
if(root.getRightNode() != null){
clearTree(root.getRightNode());
} &nbs
补充:软件开发 , Java ,