博客
关于我
二叉排序树的创建和遍历
阅读量:303 次
发布时间:2019-03-03

本文共 1209 字,大约阅读时间需要 4 分钟。

创建节点

class Node{	int value;	Node left;	Node right;	public Node(int value) {		super();		this.value = value;	}			@Override	public String toString() {		return "Node [value=" + value + "]";	}	}

添加方法 遍历方法

//添加节点 递归添加 需要满足二叉排序树	public void add(Node node) {		if(node == null) {			return;}		//判断传入节点 和当前子树的根节点的关系		if(node.value < this.value) {			if(this.left == null) {				//如果当前节点的左子节点为空				this.left = node;			}else {				//如果不为空 向左子节点递归				this.left.add(node);			}		}else {//添加的节点大于当前节点的值			if(this.right == null) {				this.right = node;			}else {				this.right.add(node);			}		}	}	//中序遍历	public void zhongxu() {		if(this.left != null) {			this.left.zhongxu();		}		System.out.println(this);		if(this.right != null) {			this.right.zhongxu();					}	}

二叉树

//创建二叉排序树class BinarySortTree2{	private Node root;	public void add(Node node) {		if(root == null) {			root = node;		}else {			root.add(node);		}	}	//中序遍历	public void zhongxu() {		if(root!=null) {			root.zhongxu();		}else {			System.out.println("kong");		}	}}

测试

int[] arr = {7,3,10,12,5,1,9};BinarySortTree2 binarySortTree2 = new BinarySortTree2();for(int i = 0;i < arr.length;i++) {	binarySortTree2.add(new Node(arr[i]));}		//中序遍历二叉排序树binarySortTree2.zhongxu();

转载地址:http://uihl.baihongyu.com/

你可能感兴趣的文章
mysql丢失更新问题
查看>>
MySQL两千万数据优化&迁移
查看>>
MySql中 delimiter 详解
查看>>
MYSQL中 find_in_set() 函数用法详解
查看>>
MySQL中auto_increment有什么作用?(IT枫斗者)
查看>>
MySQL中B+Tree索引原理
查看>>
mysql中cast() 和convert()的用法讲解
查看>>
mysql中datetime与timestamp类型有什么区别
查看>>
MySQL中DQL语言的执行顺序
查看>>
mysql中floor函数的作用是什么?
查看>>
MySQL中group by 与 order by 一起使用排序问题
查看>>
mysql中having的用法
查看>>
MySQL中interactive_timeout和wait_timeout的区别
查看>>
mysql中int、bigint、smallint 和 tinyint的区别、char和varchar的区别详细介绍
查看>>
mysql中json_extract的使用方法
查看>>
mysql中json_extract的使用方法
查看>>
mysql中kill掉所有锁表的进程
查看>>
mysql中like % %模糊查询
查看>>
MySql中mvcc学习记录
查看>>
mysql中null和空字符串的区别与问题!
查看>>