解题思路: 这是一个很经典的题目,几乎所有的数据结构的书上都可以看到
这个问题的解答,这里参考了《数据结构与算法分析---C语言描述》中的描述
方式。
打印一颗二叉树最好的方法还是采用递归的方式,其实解决树和图的最基本方法
也是递归,递归有时候会把我们的脑袋转晕了,按照上面那本书中的说法,练习
递归的最好方法就是多看好的递归的例子,然后自己动手去解决一些经典的例子。
源代码:(在VC6下通过编译,正确执行)
#include <stdio.h>
#include <stdlib.h>
//树节点
struct TreeNode
{
TreeNode* left;
TreeNode* right;
int value;
};
//中序遍历一个颗二叉树
void PrintTree(TreeNode* T)
{
if(T != NULL)
{
PrintTree(T->left);
printf("%d ",T->value);
PrintTree(T->right);
}
}
//先序遍历一个颗二叉树
void PrintTreeFirst(TreeNode* T)
{
if(T != NULL)
{
printf("%d ",T->value);
PrintTreeFirst(T->left);