【问题标题】:Find node in Binary search Tree in java在java中的二叉搜索树中查找节点
【发布时间】:2016-04-24 03:14:33
【问题描述】:

我有包含学生记录的二进制搜索树,包括学生的 ID 和名字和姓氏、年龄、电子邮件和电话号码。

所有学生都将根据他们的学生 ID 号存储在一个二叉搜索树中,并且可以保证学生的这种排序(按 ID)与姓氏字母顺序完全相同,然后是第一个名字。

我通过学生ID创建方法来查找节点。

这是代码

private Unfstudent findNode(Unfstudent student, int id) {

    if (student == null) 
        return null;
    }


    if (id < student.getID()) {
        return findNode(student.getLeft(), id);
    }

    else if (id > student.getID()) { 
        return findNode(student.getRight(), id);
    } 

    else {
        return student; 
        }

   }

我想通过学生的名字和姓氏找到节点。

谁能帮帮我?

【问题讨论】:

  • 嗯...这几乎是相同的过程...如果当前节点为空,则找不到学生 ....如果当前节点在姓氏之后,则按字母顺序排列名字排序然后在左树中搜索。如果它出现在之前,则在正确的树中搜索。否则返回当前节点。在 Java 中使用 String 上的比较器确定排序的过程非常简单

标签: java binary-search-tree


【解决方案1】:

也一样,只是用字典序的字符串比较来比较字符串。

所以你只会这样做

//some code
if (name.compareTo(student.name) == -1) {
    return findNode(student.getLeft(), name);
}
//some code

更多信息请查看String Comparison in Java

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多