简介

二叉树的创建与遍历 随笔 第1张

代码

二叉树存储结构

typedef struct node
{
    char data;//数据域
    struct node* lchild;//左孩子指针域
    struct node* rchild;//右孩子指针域
}BTNode;

创建二叉树

BTNode* creatbintree()//前序创建二叉树
{
    BTNode* p;
    char c;
    cin >> c;
    if (c == '0')   p = NULL;//0表示空节点
    else
    {
        p = new BTNode;
        p->data = c;
        p->lchild = creatbintree();
        p->rchild = creatbintree();
    }
    return p;
}

遍历二叉树

1.先序遍历

void PreOrder(BTNode* p)//先序遍历
{
    if (p)
    {
        cout << p->data << " ";
        PreOrder(p->lchild);
        PreOrder(p->rchild);
    }
}

2.中序遍历

void InOrder(BTNode* p)//中序遍历
{
    if (p)
    {
        InOrder(p->lchild);
        cout << p->data << " ";
        InOrder(p->rchild);
    }
}

3.后序遍历

void PostOrder(BTNode* p)//后序遍历
{
    if (p)
    {
        PostOrder(p->lchild);
        PostOrder(p->rchild);
        cout << p->data << " ";
    }
}

运行结果

二叉树的创建与遍历 随笔 第2张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄