0


以扩展的先序遍历建立二叉树,根结点的地址通过函数值返回。

以扩展的先序遍历建立二叉树,根结点的地址通过函数值返回。

例如

输入AB#DF##G##C##,建立二叉树如下图,

二叉树.png

输出该二叉树的先序遍历序列ABDFGC。

#include <stdio.h>
#include <stdlib.h>

typedef char ElementType;
typedef struct BiTNode {
    ElementType data;
    struct BiTNode* lchild;
    struct BiTNode* rchild;
}BiTNode, * BiTree;

BiTree CreatBinTree();
void  preorder(BiTree T);

int main()
{
    BiTree T = CreatBinTree();
    preorder(T);
    return 0;
}
void  preorder(BiTree T)
{
    if (T)
    {
        printf("%c", T->data);
        preorder(T->lchild);
        preorder(T->rchild);
    }
}
BiTree CreatBinTree()
{
    char ch; BiTree T;
    scanf("%c", &ch);
    if (ch == '#')//如果当前字符为#时说明当前节点为空,return NULL
        return NULL;
    T =(BiTree*)malloc(sizeof(BiTree));
    T->data = ch;
    T->lchild =CreatBinTree();//调用函数建立左孩子
    T->rchild =CreatBinTree();//调用函数建立右孩子
    return T;
}

本文转载自: https://blog.csdn.net/yang8627/article/details/117085409
版权归原作者 Noahの梦想 所有, 如有侵权,请联系我们删除。

“以扩展的先序遍历建立二叉树,根结点的地址通过函数值返回。”的评论:

还没有评论