文章

25

粉丝

364

获赞

8

访问

206.5k

头像
二叉树遍历(C)
P1161 清华大学/南京大学2018机试题
发布于2021年1月20日 13:58
阅读数 10.0k

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

typedef struct Node
{
    char data;
    struct Node *Lchild,*Rchild;
}BinaryTree;//树结点定义


BinaryTree* BuildTree(char* buff,int* p);//建立树
void MidOrderTraversal(BinaryTree* BT);//中序遍历
void DestroyTree(BinaryTree* BT);//销毁树

BinaryTree* BuildTree(char* buff,int* p)
{
    BinaryTree* root=NULL;

    if (buff[(*p)]=='#')
    {
        (*p)++;//遇到空格返回空指针,并将数组指针移动至下一个
    }
    else if (buff[(*p)]!='\0')
    {
        root=(BinaryTree *)malloc(sizeof(BinaryTree));
        root->data=buff[(*p)];
        (*p)++;
        root->Lchild=BuildTree(buff,p);//建立左子树
        root->Rchild=BuildTree(buff,p);//建立右子树
    }
 
    return root;           
}

void MidOrderTraversal(BinaryTree* BT)
{
    if (BT!=NULL)
    {
        MidOrderTraversal(BT->Lchild);
        printf("%c ",BT->data);
        MidOrderTraversal(BT->Rchild);
    }
    return;
}

void Destroy...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发