如何在二叉树中获取节点引用?

时间:2015-07-31 18:23:51

标签: java binary-tree nodes

我现在正在执行此任务,我需要编写的其中一个方法是在给定某个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.
  }

1 个答案:

答案 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.

这被称为广度优先搜索。由你决定如何进行类似的深度优先搜索,但我会给你一个提示。可能涉及堆栈。