求帮助代码c语言!!

根据输入的二叉树前序序列(以单个字符作为一个结点的信息)和中序序列,来构造一棵二叉树,然后输出该树的后序序列,以及该树中所有度为1的结点。


#include<stdio.h>
#include <malloc.h>
typedef struct LinkList
{
    char data;
    LinkList* lchild;
    LinkList* rchild;
}BiNode,*BiTree;
BiTree createBiTree(BiTree &T)
{
    char d = getchar();
    if (d == '#')
        T = NULL;
    else
    {
        T = (BiTree)malloc(sizeof(BiNode));
        T->data = d;
        T->lchild = createBiTree(T->lchild);
        T->rchild = createBiTree(T->rchild);
    }
    return T;
}
void PostOrder(BiTree T)//后序
{
    if (T)
    {
        PostOrder(T->lchild);
        PostOrder(T->rchild);
        printf("%c",T->data);
    }
}
void printOnce(BiTree T)
{
    if (T == NULL) return;
    if ((T->lchild == NULL && T->rchild != NULL) || (T->lchild != NULL && T->rchild == NULL))
    {
        printf("%c ", T->data);
    }
    printOnce(T->lchild);
    printOnce(T->rchild);
}
int main()
{
    BiTree T=NULL;
    printf("输入先序遍历结点,建立二叉树\n");
    T = createBiTree(T);
    printf("后序遍历结果:\n");
    PostOrder(T);
    printf("\n输出所有度数为一的结点:\n");
    printOnce(T);
}

运行效果

img

有人写了类似的
https://bbs.csdn.net/topics/600462867


可以查看手册:c语言-exp() 中的内容