要求
1)请编写谦虚查找,中序查找和后续查找的方法
2)并分别使用三种查找方式, 查找 no =5 的节点
3) 并分析各种查找方式, 分别比较了多少次
4)思路 :
4.1 前序查找,
判断当前节点的no是否等于要查找的
如果相等返回节点
如果不等,则判断当前节点的左子节点是否为空,如果不为空则递归前序查找,
如果左递归谦虚查找找到节点则返回
public Node preOrderSearch(int no){
//比较当前节点是不是
if( this. no == no )
{
return this;
}
//1.则判断当前节点的左子节点是否为空,如果不为空,则递归
//2.左递归前序查找,找到则返回节点
Node resNode = null;
if(this.left != null)
{
resNode = this.left.preOrderSearch(no);
}
if(resNode != null) {
return resNode;
}
//1.左递归前序查找,找到节点,则返回,否继续判断
//2.当前节点的右子节点是否为空,不为空则向右递归
if( this.right != null )
{
resNode = this.right.preOrderSearch(no);
}
return resNode;
}