zoukankan      html  css  js  c++  java
  • 递归存储二叉树和遍历二叉树

    #include<stdio.h>
    #include<stdlib.h>
    typedef char ElemType;
    //结点定义
    typedef struct node{
        ElemType data;
        struct node* lchild,*rchild;
    }BiTNode,*BiTree;
    
    //初始化一个空的二叉树
    void InitBiTree(BiTree &tree)
    {
        // tree存储NULL,表示没有二叉树
        tree=NULL;
    }
    //创建二叉树  #表示空结点
    void CreateBitree(BiTree &T)
    {
        char ch;
        if((ch=getchar())=='#')
            T=NULL;
        else
        {
            T=(BiTNode*)malloc(sizeof(BiTNode));
            T->data=ch;
            CreateBitree(T->lchild);
            CreateBitree(T->rchild);
        }
    }
    //先序遍历二叉树  NLR
    void preOrder(BiTree &tree)
    {
        if(tree!=NULL)
        {
            printf("%c",tree->data);
            preOrder(tree->lchild);
            preOrder(tree->rchild);
        }
    }
    //中序遍历二叉树  LNR
    void InOrder(BiTree &tree)
    {
        if(tree!=NULL)
        {
            InOrder(tree->lchild);    //一直访问到最左边的叶子节点
            printf("%c",tree->data);
            InOrder(tree->rchild);
        }
    }
    //后序遍历   LRN
    void PostOrder(BiTree &tree)
    {
        if (tree!=NULL)
        {
            PostOrder(tree->lchild);
            PostOrder(tree->rchild);
            printf("%c",tree->data);
        }
    }
    int main()
    {
        BiTree tree;
        InitBiTree(tree);
        CreateBitree(tree);
        printf("先序遍历:");
        preOrder(tree);
        printf("
    ");
        printf("中序遍历:");
        InOrder(tree);
        printf("
    ");
        printf("后序遍历:");
        PostOrder(tree);
        return 0;
    }
  • 相关阅读:
    python 冒泡排序
    python 文件操作
    20180401 lambda表达式
    python 全局变量 局部变量
    python 参数
    window.open
    正则表达式
    应用环境操作
    python 十大经典排序算法
    W3C------JS
  • 原文地址:https://www.cnblogs.com/nanfengnan/p/14539279.html
Copyright © 2011-2022 走看看