树数据结构,数据包含在叶节点和所有其他节点中,每个节点仅具有一个节点名称

时间:2019-07-08 17:27:25

标签: c# data-structures

需要实现一个三级树,该树具有用于1级和2级标签以及3级数据的标签。需要能够添加节点,删除节点,遍历和搜索。您将如何实施?

带有两个用于节点名称和节点数据的数据插槽的常规树是否可以工作?即,对于所有叶子节点,节点名称将为空,并且将填充节点数据,反之亦然,对于非叶子节点。我觉得这会浪费一些内存。

1 个答案:

答案 0 :(得分:-1)

  

我觉得这会浪费一些内存。

同意。像这样的汇编语言编程背景决定让我很烦恼:)

但是,这里浪费的定义取决于两个因素-

  1. 您正在谈论多少数据
  2. 您打算在哪里运行程序(笔记本电脑/移动设备/ RPi /低内存嵌入式系统/...)

为简单起见,让我们考虑节点数据为int(32位)的类型。现在要填充100 KB的内存,您的树中将需要25,600个条目。

现在,如果我们谈论不浪费任何内存,那么我们将最终写出两组节点,一组仅具有节点名称,而另一组仅具有节点数据。还有更多代码来添加节点,删除节点,遍历和搜索。

我希望这能回答您的查询。