zoukankan      html  css  js  c++  java
  • 二叉树--递归实现

    #include<stdio.h>
    #include<stdlib.h>
    #define ElemType int
    
    typedef struct BiTNode{
        ElemType data;
        struct BiTNode *lchild, *rchild;
    }BiTNode,*BiTree;
    
    int CreateBiTree(BiTree* t)
    {
        char ch;
        scanf("%c",&ch);
        if(ch==' ')
            (*t)=NULL;
        else
        {
            (*t) = (BiTNode*)malloc(sizeof(BiTNode));
            if(!(*t))
                return 0;
            (*t)->data = ch;
            CreateBiTree(&(*t)->lchild);
            CreateBiTree(&(*t)->rchild);
        }
    
        return 1;
    }
    
    void preOrderDisplay(const BiTree* t)
    {
        if((*t)==NULL)
            return;
        printf("%c",(*t)->data);
        preOrderDisplay(&(*t)->lchild);
        preOrderDisplay(&(*t)->rchild);
    }
    
    void inOrderDisplay(const BiTree* t)
    {
        if((*t)==NULL)
            return;
        inOrderDisplay(&(*t)->lchild);
        printf("%c",(*t)->data);
        inOrderDisplay(&(*t)->rchild);
    }
    
    void afterOrderDisplay(const BiTree* t)
    {
        if((*t)==NULL)
            return;
        afterOrderDisplay(&(*t)->lchild);
        afterOrderDisplay(&(*t)->rchild);
        printf("%c",(*t)->data);
    }
    
    int main()
    {
        BiTree t;
        int iRes = CreateBiTree(&t);
        printf("******the returned result : %d
    ",iRes);
        printf("
    *********preOrderDisplay*********
    ");
        preOrderDisplay(&t);
        printf("
    *********inOrderDisplay**********
    ");
        inOrderDisplay(&t);
        printf("
    *********afterOrderDisplay*******
    ");
        afterOrderDisplay(&t);
        return 1;
    }
  • 相关阅读:
    大话设计模式--中介者模式
    大话设计模式--职责链模式
    大话设计模式--命令模式
    大话设计模式--桥接模式
    迷宫求解
    stuct、class、typedef
    软件测试
    Scrapy初探
    python练习
    链表基础
  • 原文地址:https://www.cnblogs.com/luoyaqi/p/5161786.html
Copyright © 2011-2022 走看看