二叉树建立及其先序遍历(C语言)

题目描述:

Description

按先序遍历顺序输入二叉树的各个结点值,采用二叉链表的存储结构存储该二叉树,并按先序遍历输出二叉树的各结点的值及深度。

Input

按先序遍历顺序输入二叉树的各个结点值,#表示空节点。

Output

该二叉树的先序遍历序列,在每个节点后输出它在树中的深度。

Sample Input

ABD##E##C##

Sample Output

A(1)B(2)D(3)E(3)C(2)
 
C语言解法:
#include <stdio.h>
#include <stdlib.h>
typedef struct BiTNode {
    char Data;
    int deepth;
    struct BiTNode *LChild;
    struct BiTNode *RChild;
} BiTNode, *BiTree;
void CreateBiTree(BiTree &T, int count) {
    char ch;
    scanf("%c", &ch);
    if(ch == '#') T = NULL;
    else {
        T = (BiTNode *)malloc(sizeof(BiTNode));
        T->Data = ch;
        T->deepth = ++count;
        CreateBiTree(T->LChild, T->deepth);
        CreateBiTree(T->RChild, T->deepth);
    }
}
void Visit(BiTree &T) {
    if(T != NULL)
        printf("%c(%d)", T->Data, T->deepth);
    else return;
    Visit(T->LChild);
    Visit(T->RChild);
}
int main() {
    BiTree T;
    CreateBiTree(T,0);
    Visit(T);
    return 0;
}
posted @   br0sy  阅读(585)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示