如何构建二叉树

论坛 期权论坛 期权     
那朵花20011   2018-4-26 13:41   4492   2
分享到 :
0 人收藏

2 个回复

倒序浏览
2#
小爷左佐  2级吧友 | 2018-4-30 02:32:28 发帖IP地址来自
先序递归创建二叉树,并对其进行 先序、中序、后序遍历

1.建立二叉树
2.为了直观的输出树,那么可以选择广度遍历。查查书应该有。
3.深度的话我这刚好有两个函数
#include
typedef struct{
char data;
}TElemType;
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild;
struct BiTNode *rchild;
}BiTNode, *BiTree;
void CreateBiTree(BiTree &T)
{
char ch;
TElemType elem;
printf("请输入树节点, 空树以#代替:");
scanf("\n%c", &ch);
elem.data = ch;
if(ch == '#')
{
T = NULL;
}
else
{
T = (BiTNode * )malloc(sizeof(BiTNode));
if(!T) exit(-1);
T->data = elem; //生成根
CreateBiTree(T->lchild);//构造左子树
CreateBiTree(T->rchild);// 构造右子树
}
}
void main()
{
BiTree T;
CreateBiTree(T);
}
3#
热心网友  15级至尊 | 2018-4-30 02:32:29 发帖IP地址来自
#define TElemType int
typedef struct BiTNode
{
        TElemType data;
        struct BiTNode * lchild,*rchild;

}BiTNode,* BiTree;
//先序创建二叉树
void CreateBiTree(BiTree *T)
{
    TElemType c;

    scanf("%c",&c);

    if(c!=' ')

    {
        *T=(BiTree)malloc(sizeof(BiTNode));

        if(!(*T))

        {
            exit(0);

        }

        (*T)->data=c;

        CreateBiTree(&(*T)->lchild);

        CreateBiTree(&(*T)->rchild);
    }

}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP