• 二叉树的创建和遍历


    #include<stdio.h>

    #include<stdlib.h>

    typedef char ElemType;

    typedef  struct BiTNode

    {

        ElemType data;

        struct BiTNode *lchild, *rchild;

    }BiTNode, *BiTree;

     

    //二叉树的建立,按前序遍历的方式建立二叉树

    void CreateBiTree(BiTree &T)

    {

        ElemType ch;

        scanf("%c",&ch);

        if (ch == '#')

            T = NULL;

        else

        {

            T = (BiTree)malloc(sizeof(BiTNode));

            T->data = ch;//生成结点

            CreateBiTree(T->lchild);//构造左子树

            CreateBiTree(T->rchild);//构造右子树   

        }

    }

    //表示对遍历到的结点数据进行的处理操作,此处操作是将树结点前序遍历输出

    void operation1(ElemType ch)

    {

       printf("%c",ch);

    }

    //递归方式前序遍历二叉树

    void PreOrderTraverse(BiTree T)

    {

        if (T == NULL){

           return;

       }      

        operation1(T->data);

        PreOrderTraverse(T->lchild);

        PreOrderTraverse(T->rchild);

    }

     

    //递归方式中序遍历二叉树

    void InOrderTraverse(BiTree T)

    {

       if(T==NULL){

          return;

       }   

       InOrderTraverse(T->lchild);

       operation1(T->data);

       InOrderTraverse(T->rchild);

    }

     

    //递归方式后序遍历二叉树

    void PostOrderTraverse(BiTree T)

    {

       if(T==NULL){

          return;

       }

       PostOrderTraverse(T->lchild);

       PostOrderTraverse(T->rchild);

       operation1(T->data);

    }

    int main()

    {

        BiTree T;

       

        printf(" 请以前序遍历的方式输入扩展二叉树:(类似输入AB#D##C##)");

        CreateBiTree(T);// 建立二叉树,没有树,怎么遍历

     

        printf("递归前序遍历输出为:");

        PreOrderTraverse(T);//进行前序遍历

        printf(" ");

     

        printf("归中序遍历输出为:");

        InOrderTraverse(T);

        printf(" ");

     

        printf("递归后序遍历输出为:");

        PostOrderTraverse(T);

        printf(" ");

        return 0;

    }

    #include<stdio.h>

    #include<stdlib.h>

     

    typedef char ElemType;

     

    typedef  struct BiTNode

    {

        ElemType data;

        struct BiTNode *lchild, *rchild;

    }BiTNode, *BiTree;

     

    //二叉树的建立,按前序遍历的方式建立二叉树

    void CreateBiTree(BiTree &T)

    {

        ElemType ch;

        scanf("%c",&ch);

        if (ch == '#')

            T = NULL;

        else

        {

            T = (BiTree)malloc(sizeof(BiTNode));

            T->data = ch;//生成结点

            CreateBiTree(T->lchild);//构造左子树

            CreateBiTree(T->rchild);//构造右子树   

        }

    }

    //表示对遍历到的结点数据进行的处理操作,此处操作是将树结点前序遍历输出

    void operation1(ElemType ch)

    {

       printf("%c",ch);

    }

     

    //递归方式前序遍历二叉树

    void PreOrderTraverse(BiTree T)

    {

        if (T == NULL){

           return;

       }      

        operation1(T->data);

        PreOrderTraverse(T->lchild);

        PreOrderTraverse(T->rchild);

    }

     

    //递归方式中序遍历二叉树

    void InOrderTraverse(BiTree T)

    {

       if(T==NULL){

          return;

       }

        

         

       InOrderTraverse(T->lchild);

       operation1(T->data);

       InOrderTraverse(T->rchild);

    }

     

    //递归方式后序遍历二叉树

    void PostOrderTraverse(BiTree T)

    {

       if(T==NULL){

          return;

       }

       PostOrderTraverse(T->lchild);

       PostOrderTraverse(T->rchild);

       operation1(T->data);

    }

    int main()

    {

        BiTree T;

       

        printf(" 请以前序遍历的方式输入扩展二叉树:(类似输入AB#D#C#)");

        CreateBiTree(T);// 建立二叉树

     

        printf("递归前序遍历输出为:");

        PreOrderTraverse(T);//进行前序遍历

        printf(" ");

     

        printf("归中序遍历输出为:");

        InOrderTraverse(T);

        printf(" ");

     

        printf("递归后序遍历输出为:");

        PostOrderTraverse(T);

        printf(" ");

        return 0;

    }

  • 相关阅读:
    SQL server 和Oracle 序列
    AD 域服务简介(一)- 基于 LDAP 的 AD 域服务器搭建及其使用(转)
    Windows Server 2008 R2 搭建DNS服务器(转)
    windows7下搭建HTTP服务器
    解决vcenter 6.0 vcsa安装插件时报错的问题
    Windows server 2008R2系统登录密码破解
    vmware Horizon 7 与远程桌面(mstsc)兼容性问题解决办法
    VCSA服务重启命令
    如何哄女朋友开心(转)
    快速搭建一个本地的FTP服务器 win10及win7
  • 原文地址:https://www.cnblogs.com/zhahu/p/11931431.html
Copyright © 2020-2023  润新知