Java实现前序、中序、后序、层次查找

点击进入尚硅谷数据结构和算法Java代码导航

1 前序查找

//前序遍历查找
public Node preSearch(Node temp, String value) {
	if(temp.data.equals(value)) {
		return temp;
	}
	Node res = null;
	if(temp.left != null) {
		res = preSearch(temp.left, value);
	}
	if(res != null) {
		return res;
	}
	if(temp.right != null) {
		res = preSearch(temp.right, value);
	}
	return res;
}

2 中序查找

//中序遍历查找
public Node inSearch(Node temp, String value) {
	Node res = null;
	if(temp.left != null) {
		res = inSearch(temp.left, value);
	}
	if(res != null) {
		return res;
	}
	if(temp.data.equals(value)) {
		return temp;
	}
	if(temp.right != null) {
		res = inSearch(temp.right, value);
	}
	return res;
}

3 后序查找

//后序遍历查找
public Node postSearch(Node temp, String value) {
	Node res = null;
	if(temp.left != null) {
		res = postSearch(temp.left, value);
	}
	if(res != null) {
		return res;
	}
	if(temp.right != null) {
		res = postSearch(temp.right, value);
	}
	if(res != null) {
		return res;
	}
	if(temp.data.equals(value)) {
		return temp;
	}
	return res;
}

4 层次查找

//层次遍历查找
public Node levelSearch(String value) {
	ArrayDeque<Node> quene = new ArrayDeque<Node>();
	Node temp = this.root;
	quene.add(temp);
	while(!quene.isEmpty()) {
		temp = quene.poll();
		if(temp.data.equals(value)) {
			return temp;
		}
		if(temp.left != null) {
			quene.add(temp.left);
		}
		if(temp.right != null) {
			quene.add(temp.right);
		}
	}
	return null;
}

你可能感兴趣的:(Java,数据结构)