【问题标题】:BST: adding multiple values in a single nodeBST:在单个节点中添加多个值
【发布时间】:2016-12-22 15:20:18
【问题描述】:

刚开始学习二叉搜索树,我的任务要求我制作一个结构如下的 BST:

NODE: (contains) - String stringValue, int intValue ... k

  1. 我怎样才能实现 BST 在我确定的地方,至少会有 1 个 String 值,但有 unknown count 个 int 值? (我很想了解“节点”结构的外观(以及构造函数)以及插入/删除的外观......)

用户可以声明 int 值的计数。例如:John 可以有 3 个 int 值 = John 12 5 2(一个节点)。

【问题讨论】:

  • class Node { std::string stringValue; std::vector<int> intValues;};
  • @IgorTandetnik 通过这种结构我的节点 nr1。可能看起来像“John 2 13 4”或节点 nr1。 “彼得 15 1”?另外,如果这是正确的,搜索将如何处理这种情况?如果我查找 example1:“Peter”,它将返回节点 nr1。以及如果我要寻找“13”(也返回相同的节点)?
  • A Node,正如我定义的那样,可以存储一个字符串和任意数量的整数,如果这就是你所要求的。搜索将按照您实现它的方式工作。

标签: c++ class data-structures


【解决方案1】:

你可以用variadic templates创建类:

template <typename T, typename... U>
class Node{
    public:
    Node(T nameStr, U... vInput){
        name = nameStr;
        list = {vInput...};
    }
    T name;
    std::array<int, sizeof...(U)> list;
};

Demo

【讨论】:

  • Saurav - 通过这种结构我的节点 nr1。可能看起来像“John 2 13 4”或节点 nr1。 “彼得 15 1”?另外,如果这是正确的,搜索将如何处理这种情况?如果我查找 example1:“Peter”,它将返回节点 nr1。以及如果我要寻找“13”(也返回相同的节点)?
猜你喜欢
  • 2017-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-24
  • 2021-05-16
  • 1970-01-01
  • 1970-01-01
  • 2016-02-09
相关资源
最近更新 更多