二叉树的创建与遍历

Posted wjchen99

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树的创建与遍历相关的知识,希望对你有一定的参考价值。

简介

技术图片

代码

二叉树存储结构

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 << " ";
    }
}

运行结果

技术图片

以上是关于二叉树的创建与遍历的主要内容,如果未能解决你的问题,请参考以下文章

Python 二叉树的创建和遍历、重建

二叉树的创建与遍历

二叉树有关习题整理543二叉树的直径 606根据二叉树创建字符串 KY11二叉树遍历 - 牛客105从前序遍历与中序遍历构造二叉树

二叉树的创建与遍历(递归实现)

LeetCode与《代码随想录》二叉树篇:做题笔记与总结-JavaScript版

树的前序遍历与中序遍历构造二叉树和树的中序遍历与后序遍历构造二叉树