2017-06-16 53 views
2

我刚开始学习C++,我需要为一个项目创建一个列表树(下面的图片链接),但我不确定它是一个自定义树还是一个预先存在的树。这是什么样的树是字母作为节点?

有点在树上;大蓝块代表列表,代表节点内的小块。

我不是在寻找代码或任何东西,只是一个解释树或链接到我可以找到它的信息。

Image Here

+0

我认为它可以通过[Linux内核链表]来实现( https://isis.poly.edu/kulesh/stuff/src/klist/) – lanyusea

+0

尝试描述th e图像。这本身可能会让你接近自己的答案。 –

回答

1

图像中的数据结构是Trie数据结构。

Trie是一种高效的信息检索数据结构。使用trie,搜索复杂性可以达到最佳限制(密钥长度)。 - (来源:GeeksForGeeks)

图中显示的是以下字符串 -
法,实际,其实,和,书,老板,孔,董事会和船。

一些有用的链接了解更多 -

0

从我会使用类似

struct List; 
struct Node { 
    // ... node data ... 
    std::shared_ptr<List> list; 
}; 
struct List { 
    // ... list data ... 
    std::vector<std::shared_ptr<Node>> nodes; 
}; 

除非节点在列表中的号码可以是巨大的图片,你需要动态插入/从的中间删除节点名单。

0

这对我来说看起来就像一件古装树。通常对于他们制作自己的服装树的项目来说,它们是数据结构的组合。例如,这是列表和链接列表的组合。

0

你所描述的是一个Trie或前缀树的实现。 https://en.wikipedia.org/wiki/Trie

这些级别可以用不同的方式实现:链表,位图,数组等等。但是它们背后的想法是一样的。