设计一棵二叉树(要求不少于4层, 10个结点)解决办法

设计一棵二叉树(要求不少于4层, 10个结点)
请给出程序!!!编程打印该树的先序、中序、后序遍历序列。

------解决方案--------------------
C/C++ code

#include <stdio.h>
#include <malloc.h>
//二叉树类型定义
typedef int ElemType;
typedef struct tree
{
    ElemType data;
    struct tree *lchild;
    struct tree *rchild;
}biTreeNode, *biTree;

/*
*功能:创建二叉树(先序)
*参数:二叉树根结点地址的地址
*/
void createBiTree(biTree *root)
{
    ElemType tmp;
    scanf("%d", &tmp);
    if(tmp == 0)
    {
        *root = NULL;
        return;
    }
    *root = (biTree)malloc(sizeof(biTreeNode));
    if(*root == NULL)
        return;
    (*root)->data = tmp;
    createBiTree(&(*root)->lchild);
    createBiTree(&(*root)->rchild);
}
/*
*功能:访问二叉树结点
*参数:二叉树根结点地址
*/
void visit(biTree root)
{
    printf("%d  ", root->data);
}
/*
*功能:先序遍历二叉树
*参数:二叉树根结点地址
*/
void preOrderTraverse(biTree root)
{
    if(root == NULL)
        return;
    visit(root);
    preOrderTraverse(root->lchild);
    preOrderTraverse(root->rchild);
}
/*
*功能:中序遍历二叉树
*参数:二叉树根结点地址
*/
void inOrderTraverse(biTree root)
{
    if(root == NULL)
        return;
    inOrderTraverse(root->lchild);
    visit(root);
    inOrderTraverse(root->rchild);
}
/*
*功能:后序遍历二叉树
*参数:二叉树根结点地址
*/
void postOrderTraverse(biTree root)
{
    if(root == NULL)
        return;
    postOrderTraverse(root->lchild);
    postOrderTraverse(root->rchild);
    visit(root);
}
int main()
{
    biTree tree;
    createBiTree(&tree);
    printf("先序遍历:\n");
    preOrderTraverse(tree);
    printf("\n中序遍历:\n");
    inOrderTraverse(tree);
    printf("\n后序遍历:\n");
    postOrderTraverse(tree);
    printf("\n");
    return 0;
}

1 2 4 8 0 0 9 0 0 5 10 0 0 11 0 0 3 6 12 0 0 13 0 0 7 14 0 0 15 0 0
先序遍历:
1  2  4  8  9  5  10  11  3  6  12  13  7  14  15
中序遍历:
8  4  9  2  10  5  11  1  12  6  13  3  14  7  15
后序遍历:
8  9  4  10  11  5  2  12  13  6  14  15  7  3  1



数据要自己输入