• 二叉树的建立,以及前序,中序,后序遍历


    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    typedef struct BIT_Node{//
      char data;
      struct BIT_Node *lchild;
      struct BIT_Node *rchild;
    }BIT_Node,*BITree;
    char ch;
    void CreateBiTree(BITree *T){
       scanf("%c",&ch);
       if(ch=='#'){
         (*T)=NULL;
       }else{
         (*T)=(BITree)malloc(sizeof(BIT_Node));//连接
         (*T)->data=ch;
         CreateBiTree(&(*T)->lchild);//建立左孩子
         CreateBiTree(&(*T)->rchild);//建立右孩子
       }
    }
    void preOrderTraverse(BITree T,int level)
    {
        if(T==NULL)return;
        else {
            printf("%c ",T->data);//先序遍历,意思是我先跑根节点,再跑左节点,再跑右节点
            preOrderTraverse(T->lchild,level+1);
            preOrderTraverse(T->rchild,level+1);
        }
    }
    void OrderTraverse(BITree T,int level)
    {
        if(T==NULL)return;
        else {
            OrderTraverse(T->lchild,level+1);
            printf("%c ",T->data);//中序遍历,意思是我先跑左节点再根,再右节点,再根
            OrderTraverse(T->rchild,level+1);
        }
    }
    void PostorderTraverse(BITree T,int level)
    {
        if (T==NULL)return;
        else {
            PostorderTraverse(T->lchild,level+1);
            PostorderTraverse(T->rchild,level+1);
            printf("%c ",T->data);//后序遍历,意思是我先跑左节点,再右节点,再根。
        }
    }
    int main(){
     int level=1;
     BITree T = NULL;
     CreateBiTree(&T);//二叉树的建立,需要地址传递或者引用传递,否则建立了只在函数内部起作用
     printf("先序遍历:");
     preOrderTraverse(T,1);
     printf("
    ");
     printf("中序遍历:");
     OrderTraverse(T,1);
     printf("
    ");
     printf("后序遍历:");
     PostorderTraverse(T,1);
     printf("
    ");
     return 0;
    }
    有不懂欢迎咨询 QQ:1326487164(添加时记得备注)
  • 相关阅读:
    [题解]luogu-P1494 小Z的袜子 普通莫队
    [板子] 线性基
    [板子]字符串-KMP与AC自动机
    [板子]线段树求逆序对
    任务表
    [学习笔记]数列分块入门九题[LOJ6277-6285]
    Python常用高级函数
    Python的闭包和装饰器
    Python的迭代器和生成器
    Python的命名空间
  • 原文地址:https://www.cnblogs.com/bluefly-hrbust/p/9941589.html
Copyright © 2020-2023  润新知