【问题标题】:Getting parent node on a binary search tree在二叉搜索树上获取父节点
【发布时间】:2016-08-10 13:05:58
【问题描述】:

问题来了,我有一个存储了所有值的二叉搜索树,给定一个特定值,我需要获取其父节点的值。我想我可以自己实现这棵树,但如果我可以使用 Set 或 Map 之类的东西会非常好,因为因为它是用于编程竞赛的,所以我需要能够快速编写代码并且没有错误。我可以使用 C++11 或 Java,不能使用标准库之外的库,如果可能的话,我更喜欢用 c++ 而不是 java 编码,但我可以两者都做。

(OBS:这只是训练不是实际比赛,问题可以在这里找到https://www.urionlinejudge.com.br/judge/pt/problems/view/2120。我查看了cplusplus.com查看参考但我找不到任何类似的东西)

【问题讨论】:

  • 如果是为了比赛,不要指望别人告诉你怎么写——表明你已经做了一些研究。
  • 我做了研究,没有找到任何参考资料,只是训练而不是实际比赛
  • stackoverflow.com/q/15180854/6665437 - stackoverflow.com/q/29579862/6665437 - stackoverflow.com/q/12342131/6665437 - geeksforgeeks.org/… 真正的基本谷歌搜索发现这些问题与您的问题非常相似。
  • 二叉树并不难。尝试使用 Set 或 Map 对它们进行建模比仅仅这样做更难。
  • 好吧@naffarn,他们都自己实现了树,正如我在我的问题中提到的那样,并不是我不能实现它我只是想知道是否可以做到通过 STL 或任何标准库,以便在比赛期间更容易实现和消除错误

标签: java c++ c++11 stl binary-search-tree


【解决方案1】:

二叉树是用户定义的类(即不在库中)。因此,它可能要么由竞赛持有者定义,要么您需要自己编写。因此,您必须编写自己的函数来处理它。如果它不一定需要运行,您可以假设一个基本的二叉树节点结构,如:

struct Node {
    Data data; 
    struct Node left;
    struct Node right;
}

此类问题的目的是确保您能够弄清楚算法,而不是您知道如何使用 STL。您需要自己实现(可能)树和(肯定)算法。

【讨论】:

  • 只是通常情况并非如此。对于大多数问题,有一种聪明的方法可以使用已经预定义的函数,它可以比自己定义更快地为您解决问题。但我想你是对的,如果不自己实现它,我找不到办法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多