c - 需要有关树打印代码的帮助

标签 c

我正在尝试打印这棵树:

    1 
   / \
  2   3
 /   / \
4   5   6

这样:

1
2 3
4 5 6

我写了这段代码:

void print_g(Tree t)
{
    Queue q=initQueue();
    Tree tmp=initTree();
    if(!isTreeEmpty(t))
        enqueue(q,t);
    while(!isQueueEmpty(q))
    {
        tmp=dequeue(q);
        printf("%d ",*((int *)Root(tmp)));
        if(!isTreeEmpty(subLeft(tmp)))
            enqueue(q,subLeft(tmp));
        if(!isTreeEmpty(subRight(tmp)))
            enqueue(q,subRight(tmp));

    }
}

但是这段代码打印出来是这样的:

123456

我想不出如何解决打印问题。 有人可以写一下伪代码吗?

谢谢。

最佳答案

将子级添加到队列后,创建一个值为换行符的假树节点并将其添加到队列中。

关于c - 需要有关树打印代码的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7353036/

相关文章:

c - 使用 OpenCV 时 GTK 应用程序不刷新 UI

c - 为什么即使缺少 return 语句,C 中的程序仍能编译?

c++ - 需要将字符串更改为二进制,然后再更改为 ASCII

c - 如何在 C 中用十进制值递增 for 循环

从 c 调用 Lua 脚本中的一个特定函数

c - 为什么 ARM 将 "0xFFFFFFFF"视为超出枚举的 "int"范围而不是赋值?

c - C 编码中的按位运算

c - 我应该为 lex 函数创建头文件吗?

c - 如何在使用 mingw32 构建 llvm 时禁用 llvm-c-test

c - C 中的 forks - 练习