public class BinaryTree {
Node root;
public BinaryTree(Node root)
{
this.root = root;
}
public int preDel(int data) {
if (this.root == null) {
throw new RuntimeException("空树不能删除");
}
if(this.root!= null && this.root.data == data)
{
this.root = null;
return 1;
}
return this.root.preDel(data);
}
public void preOrder() {
if(this.root != null)
this.root.preOrder();
else {
System.out.println("此树为空");
}
}
public int preFind(int data){
if (this.root != null) {
return this.root.preFind(data);
}
return -1;
}
public int infixFind(int data){
if (this.root != null) {
return this.root.infixFind(data);
}
return -1;
}
}
class Node{
int data;
Node left;
Node right;
public Node(int data) {
this.data = data;
}
public int preDel(int data) {
if(this.left != null && this.left.data == data) {
this.left = null;
return 1;
}
if(this.right != null && this.right.data == data)
{
this.right = null;
return 1;
}
if(this.left != null)
{
int result = this.left.preDel(data);
if(result == 1)
return result;
}
if(this.right != null)
{
return this.right.preDel(data);
}
return -1;
}
public void preOrder() {
System.out.println("进入前序遍历");
System.out.println(this.data);
if(this.left != null)
this.left.preOrder();
if(this.right != null)
this.right.preOrder();
}
public int infixFind(int data) {
if (this.left != null) {
int result = this.left.infixFind(data);
if(result == 1)
return result;
}
System.out.println("进入中序查找" + this);
if (this.data == data) {
return 1;
}
if (this.right != null) {
return this.right.infixFind(data);
}
return -1;
}
public int preFind(int data) {
System.out.println("进入前序查找" + this);
if (this.data == data) {
return 1;
}
if (this.left != null) {
int result = this.left.preFind(data);
if(result == 1)
return result;
}
if (this.right != null) {
return this.right.preFind(data);
}
return -1;
}
@Override
public String toString() {
return "Node [data=" + data + "]";
}
}
二叉树前序遍历查找删除
最新推荐文章于 2022-04-19 17:04:26 发布