【问题标题】:Free all elements in a tree [closed]释放树中的所有元素[关闭]
【发布时间】:2016-10-26 01:41:44
【问题描述】:

我试图编写一个递归来释放树中的所有元素。数据结构是一个带有信息的结构,一个指向左孩子的指针和一个指向兄弟的指针。

如何释放树中的所有节点?我试过后订购的方法,但我不能正确
谢谢

树不是二元的

【问题讨论】:

标签: c


【解决方案1】:

有两种方法可以做到这一点,递归或迭代。

递归方法是最简单的编码方法。你编写了一个“空闲节点”函数来检查节点是否有任何后代或兄弟节点,并在每个节点上调用“空闲节点”,然后释放它被调用的节点。在根节点上执行这个“释放节点”操作将释放整个树。

迭代方法做同样的事情,但保留一个节点列表以释放。这是迭代方法的草图:

  1. 创建指向仅包含根节点的节点的指针列表。
  2. 获取列表头部的节点,将其所有兄弟节点和子节点添加到节点列表中,然后释放该节点并将其从列表中删除。
  3. 如果列表为空,请停止,您就完成了。
  4. 转到第 2 步。

【讨论】:

    猜你喜欢
    • 2017-05-02
    • 1970-01-01
    • 2014-10-02
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 2017-03-25
    • 2013-11-15
    相关资源
    最近更新 更多