• 数据结构-二叉树的递归实现


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

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

  • 相关阅读:
    换教室
    [国家集训队]礼物
    【模板】扩展卢卡斯(学习笔记)
    Desert King
    绿豆蛙的归宿
    Dropping tests
    [SDOI2013]随机数生成器
    佳佳的fib
    [USACO10OPEN]水滑梯Water Slides
    强大的XML
  • 原文地址:https://www.cnblogs.com/lemonzhang/p/12386096.html
Copyright © 2020-2023  润新知