有没有可能设计一个节点有无限多个子节点的树呢? [英] Is it possible to design a tree where nodes have infinitely many children?

查看:29
本文介绍了有没有可能设计一个节点有无限多个子节点的树呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何设计具有大量(无限数量)分枝的树?

我们应该使用哪种数据结构存储子节点?

推荐答案

您实际上不能存储无限多的子项,因为内存无法容纳这些子项。但是,您可以无限制地存储多个子节点,也就是说,您可以创建树,其中每个节点可以有任意数量的子节点,并且没有固定的上限。

有几种标准方法可以做到这一点。您可以让每个树节点存储其所有子节点的列表(可能是动态数组或链表),这通常是通过尝试来完成的。例如,在C++中,您的代码可能如下所示:

struct Node {
   /* ... Data for the node goes here ... */
   std::vector<Node*> children;
};

或者,您可以使用left-child/right-sibling representation,它将多向树表示为二叉树。这通常用在优先级队列(如二项式堆)中。例如:

struct Node {
    /* ... data for the node ... */
    Node* firstChild;
    Node* nextSibling;
};

希望这能有所帮助!

这篇关于有没有可能设计一个节点有无限多个子节点的树呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆