• 小甲鱼数据结构和算法-----二叉树的构建和前序遍历


    题目要求:建立二叉树并输出每个字符所在的层数。如下图要求输出

    A 在第一层

    B、C 在第二层

    D、E在第三层

    代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    
    
    typedef struct BiTNode {
        char data;
        struct BiTNode *lchild,*rchild;
    }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)->rchild);
        }
    }
    
    void visit(char c,int level) {
        printf("%c 位于第 %d 层 
    ",c,level);
    }
    // 前序遍历二叉树
    void PreOrderTraverse(BiTree T, int level) {
        if ( T ) {
            visit(T->data,level);
            PreOrderTraverse(T->lchild,level+1);
            PreOrderTraverse(T->rchild,level+1);
        }
    }
    int main()
    {
        int level = 1;
        BiTree T;
        T = NULL;
    
        CreateBiTree(&T);
        PreOrderTraverse(T,level);
        return 0;
    }

    运行结果截图:

  • 相关阅读:
    MaaS系统概述
    流处理认识
    事务补偿
    Hystrix原理与实战
    RPC概念和框架
    git remote: error: hook declined to update
    Unity CombineTexture
    Windows Powershell统计代码行数
    unity面试题二
    unity面试题一
  • 原文地址:https://www.cnblogs.com/ncuhwxiong/p/7226460.html
Copyright © 2020-2023  润新知