我刚刚开始学习C ++,我需要为项目创建一个列表树(下面的图像链接),但我不确定它是自定义树还是预先存在的树。
树上的一点点;大蓝色块表示列表,较小的块表示节点。
我不是在寻找代码或任何东西,只是对树的解释或链接到我可以找到它的信息。
答案 0 :(得分:1)
图像中的数据结构是Trie数据结构。
Trie是一种高效的信息检索数据结构。使用trie,搜索复杂性可以达到最佳限制(密钥长度)。 - (来源:GeeksForGeeks)
图像中显示的Trie用于以下字符串 -
行动,实际,实际,和,书,老板,钻孔,板和船。
一些有用的链接了解更多 -
答案 1 :(得分:0)
从图片中我会使用类似
的内容struct List;
struct Node {
// ... node data ...
std::shared_ptr<List> list;
};
struct List {
// ... list data ...
std::vector<std::shared_ptr<Node>> nodes;
};
除非列表中的节点数量很大,否则您需要从列表中间动态插入/删除节点。
答案 2 :(得分:0)
这对我来说就像一棵古装树。通常对于项目,他们制作自己的服装树,这是数据结构的组合。例如,这是列表和链接列表的组合。
答案 3 :(得分:0)
您所描述的是Trie或前缀树的实现。 https://en.wikipedia.org/wiki/Trie
级别可以用不同的方式实现:链表,位图,数组等。但它们背后的想法是一样的。