zoukankan      html  css  js  c++  java
  • 小甲鱼数据结构和算法-----二叉树的构建和前序遍历

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

    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;
    }

    运行结果截图:

  • 相关阅读:
    restfulframework详解
    restful规范
    02-模板字符串
    01-学习vue前的准备工作
    vue系列
    crawler_编码转换_unicode(&#24180;)
    002-算法-递归法
    001-算法-递推法
    000-算法-基础概念
    linux_后台启动多个java -jar 程序,及关闭
  • 原文地址:https://www.cnblogs.com/ncuhwxiong/p/7226460.html
Copyright © 2011-2022 走看看