zoukankan      html  css  js  c++  java
  • 数据结构-二叉树的递归实现

    二叉树的递归创建,三种遍历:

    #include <stdio.h>
    #include <stdlib.h>
    
    #define ERROE 0
    typedef char ElementType;
    
    typedef struct BinTree {
        ElementType data;
        struct Bintree* lchild, * rchild;
    }BinTree,*Tree;
    
    //按照前序遍历输入二叉树结点值,#表示空结点
    void CreatBinTree(Tree* T)
    {
        ElementType data;
        scanf_s("%c", &data);
        if (data == '#')
            *(T) = NULL;
        else
        {
            *T = (Tree)malloc(sizeof(BinTree));
            if (*T == NULL)
                exit(ERROE);
            else
            {
                (*T)->data = data;
                CreatBinTree(&((*T)->lchild));
                CreatBinTree(&((*T)->rchild));
            }
        }
    }
    
    void PreOrderTraverse(Tree T, int level)
    {
        if (T)
        {
            printf_s("%c in level %d
    ", T->data, level + 1);
            PreOrderTraverse(T->lchild, level + 1);
            PreOrderTraverse(T->rchild, level + 1);
        }
    }
    
    void InOrderTraverse(Tree T, int level)
    {
        if (T)
        {
            PreOrderTraverse(T->lchild, level + 1);
            printf_s("%c in level %d
    ", T->data, level + 1);
            PreOrderTraverse(T->rchild, level + 1);
        }
    }
    
    void PostOrderTraverse(Tree T, int level)
    {
        if (T)
        {
            PreOrderTraverse(T->lchild, level + 1);
            PreOrderTraverse(T->rchild, level + 1);
            printf_s("%c in level %d
    ", T->data, level + 1);
        }
    }
    
    int main()
    {
        Tree T;
        printf_s("Creat Binary Tree
    ");
        CreatBinTree(&T);
        printf_s("Pre
    ");
        PreOrderTraverse(T, 0);
        printf_s("In
    ");
        InOrderTraverse(T, 0);
        printf_s("Post
    ");
        PostOrderTraverse(T, 0);
    
        system("pause");
        return 1;
    }

  • 相关阅读:
    JavaScript 简介
    HTML 标签列表
    HTML5 是什么
    初识HTML5
    Conda 环境增删改查导出导入
    Windows 下安装 CGAL 并验证安装
    3D 点云数据集整理分析
    内网穿透
    SSH 免密登录
    串口、COM口、TTL、RS-232、RS-485区别详解
  • 原文地址:https://www.cnblogs.com/lemonzhang/p/12386096.html
Copyright © 2011-2022 走看看