c - 仅使用队列和递归的层次顺序遍历算法

标签 c

我的问题是如何对二叉树进行层序遍历?我知道您会使用问题,但我将如何递归执行此操作?简而言之,我正在尝试按如下级别顺序打印树的内容:

     3
    / \
   2   1
  / \   \
 4   6   10

将打印:3 2 1 4 6 10

我已经尝试了很多失败的尝试,这些尝试都出现了段错误并且感到沮丧并删除了它们。我正在尝试使用 NO 循环,仅使用递归来执行此操作。使用循环还不错,但是我最近开始学习递归,并且想仅使用递归来完成此方法。当您无法使其正常工作时,它会非常令人沮丧。谢谢你的帮助。

最佳答案

伪代码:

Traverse (queue, t):
  visit t
  For each child c of t:
      put c to queue
  Traverse (queue, pop queue)

关于c - 仅使用队列和递归的层次顺序遍历算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15171385/

相关文章:

objective-c - 使用 Objective-C/C 从网络驱动器复制目录

c - 32 位和 64 位之间的无符号减去无符号差

c - 查找像素的 xy 位置的函数

c - C 中的简单字数统计

c - 用C发送ARP包

c - 查找 off_t 大小

c - 为什么编译器不优化掉这些无法访问的指令呢?

c++ - 如何将位从一个变量复制到另一个变量?

c - 在 Linux 内核中拦截异常处理程序的最佳做法是什么

c - 如何减少最小 Linux 进程的内存占用