博客
关于我
二叉排序树的创建和遍历
阅读量: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/

你可能感兴趣的文章
WARN: Establishing SSL connection without server‘s identity verification is not recommended.
查看>>
MySQL要点总结二
查看>>
Mysql覆盖索引
查看>>
mysql视图
查看>>
MySQL视图
查看>>
MySQL视图
查看>>
Mysql视图、变量、存储过程、函数
查看>>
Mysql视图、触发器、事务、储存过程、函数
查看>>
MySQL视图与索引详解
查看>>
mysql视图建立MERGE算法和TEMPTABLE算法的区别(效率与表锁定问题)
查看>>
mysql视图,索引和存储过程
查看>>
mysql解压没有data_Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini及服务无法启动的快速解决办法(问题小结)...
查看>>
Mysql解压版安装
查看>>
mysql触发器
查看>>
Mysql设置字符编码及varchar宽度问题
查看>>
mysql设置数据允许远程连接
查看>>
MySQL设置白名单限制
查看>>
MySQL设置远程连接
查看>>
mysql设计数据库和表的规范
查看>>
MySQL该如何将月增上亿条数据的单表处理方案优雅落地?
查看>>