java二叉树的创建

一、二叉树

二叉树是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树 。
二叉树

二、二叉树的创建

思路分析
使用创建Java创建二叉树时,创建二叉树节点,通过节点递归生成二叉树
源码
创建节点

package tree;

public class NodeTree {
	//定义数据域
	int data;
	//定义左子树
	NodeTree leftChild;
	//定义右子树
	NodeTree rightChild;
	
	public NodeTree(int data) {
		data = -1;
		leftChild = null;
		rightChild = null;
	}



	public int getData() {
		return data;
	}

	public void setData(int data) {
		this.data = data;
	}

	public NodeTree getLeftChild() {
		return leftChild;
	}

	public void setLeftChild(NodeTree leftChild) {
		this.leftChild = leftChild;
	}

	public NodeTree getRightChild() {
		return rightChild;
	}

	public void setRightChild(NodeTree rightChild) {
		this.rightChild = rightChild;
	}


	public void addNode(NodeTree newNode,int data) {
		//小于根节点放左边
		if(this.data>newNode.data) {
			if(this.leftChild==null) {
				this.leftChild=newNode;
			}else {
				this.leftChild.addNode(newNode, data);
			}
		}
		//大于根节点放右边
		if(this.data<=newNode.data) {
			if(this.rightChild==null) {
				this.rightChild=newNode;
			}else {
				this.rightChild.addNode(newNode, data);
			}
		}
	}

}

创建树

package tree;

public class BinTree {
	//根节点
	NodeTree root;
	
	public void add(int data) {
	//调用节点类
		NodeTree newTree = new NodeTree(data);
		if(root ==null) {
			this.root = newTree;
		}else {
			this.root.addNode(newTree, data);
		}
		System.out.println("插入成功");
	}
	
}

测试类

package tree;

public class test {
	public static void main(String[] args) {
		int[] arr = {34,6,53,76,345,32,2};
		BinTree binTree = new BinTree();
		for(int i=0;i<arr.length;i++) {
			binTree.add(arr[i]);	
		}
		System.out.println("添加成功");
	}
}

相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页