二叉树的建立与遍历

#include <stdio.h>
#include "malloc.h"

typedef char ElemType;

typedef struct BiTNode {
    ElemType data;
    struct BiTNode *lchild, *rchlid;
} BiTNode, *BiTree;


void CreateBiTree(BiTree &T) { 
    char c;

    scanf("%c", &c);
    if (' ' == c) {
        T = NULL;
    } else {
        T = (BiTNode *) malloc(sizeof(BiTNode));
        T->data = c;
        CreateBiTree(T->lchild);
        CreateBiTree(T->rchlid);
    }
}

void visit(char c ,int level){
    printf("%c位于 %d 层\n",c,level);
}
//遍历二叉树 先序遍历
void PreOrderTraverse(BiTree T, int level) {
    if (T) {
        visit(T->data,level);
        PreOrderTraverse(T->lchild,level+1);
        PreOrderTraverse(T->rchlid,level+1);
    }
}

int main(){
    int level =1;
    BiTree  T = NULL;
    CreateBiTree(T);
    PreOrderTraverse(T,level);
    return 0;
}
//AB空格D空格*2CE空格*3
posted @ 2023-04-12 17:40  给我一碗炒粉  阅读(19)  评论(0)    收藏  举报