我现在正在执行此任务,我需要编写的其中一个方法是在给定某个String标签的情况下获取节点引用。
我的节点中的一个字段包含一个名为label的字符串,我想检查整个树以查看特定节点是否包含该特定字符串。
我将如何做到这一点?
到目前为止,我有一个名为getNodeReference
的方法,它采用String标签,我想做类似的事情:
if(root != contain the String) {
--search the left children, middle children, then right children (I guess its a ternary tree)
}
if (left.node != contain the String) {
--keep searching left, if you cant find it go on to middle. etc.
}
答案 0 :(得分:0)
您所指的操作类型称为树遍历。关于如何执行它们的一个很好的参考是:
https://en.wikipedia.org/wiki/Tree_traversal
但是一个例子可能是(伪代码):
Set up a queue.
Enqueue the root.
While the queue is not empty:
Dequeue an item.
If the item matches, return it.
Else
Iterate over the children of the item, enqueuing them
in order from left to right.
这被称为广度优先搜索。由你决定如何进行类似的深度优先搜索,但我会给你一个提示。可能涉及堆栈。