zoukankan      html  css  js  c++  java
  • 二叉树的遍历!

    /*
     二叉树的遍历,前序遍历,中序遍历,后序遍历。
    */

    #include<stdio.h>
    #include<stdlib.h>
    #define null 0
    //定义结构体
    struct BinaryTree
    {
     char data;
     struct BinaryTree *Lchild;
     struct BinaryTree *Rchild;
    };
    typedef struct BinaryTree BiTree;

    //建立二叉树
    BiTree * createBiTree(BiTree *, int);
    //前序遍历
    void PreOrder(BiTree *);
    //中序遍历
    void MidOrder(BiTree *);
    //后序遍历
    void PostOrder(BiTree *);
    //输出函数
    void Visit(BiTree *);

    int main()
    {
     BiTree bt, *root;
     printf("printf code: "); /*输入格式为:先输入根节点,再输入
            左子树,右子树,没有则用@代替。*/
     root = createBiTree(&bt, 0);
     printf("前序遍历的结果是:");
     PreOrder(root);
     printf(" ");
     printf("中序遍历的结果是:");
     MidOrder(root);
     printf(" ");
     printf("后序遍历的结果是:");
     PostOrder(root);
     printf(" ");
     return 0;
    }

    BiTree * createBiTree(BiTree *s, int k)
    {
     char c;
     BiTree *p, *t;
     scanf("%c", &c);
     if(c != '@')
     {
      p = (BiTree *)malloc(sizeof(BiTree));
      p -> data = c;
      p -> Lchild = null;
      p -> Rchild = null;
      if(k == 0)  t = p;
      if(k == 1)  s -> Lchild = p; /*链接到左子树*/
      if(k == 2)  s -> Rchild = p; /*链接到右子树*/
      createBiTree(p, 1);
      createBiTree(p, 2);
     }
     return t;
    }

    void PreOrder(BiTree *s)
    {
     if(s)
     {
      Visit(s -> data);
      PreOrder(s -> Lchild);
      PreOrder(s -> Rchild);
     }
    }

    void MidOrder(BiTree *s)
    {
     if(s)
     {
      MidOrder(s -> Lchild);
      Visit(s -> data);
      MidOrder(s -> Rchild);
     }
    }

    void PostOrder(BiTree *s)
    {
     if(s)
     {
      PostOrder(s -> Lchild);
      PostOrder(s -> Rchild);
      Visit(s -> data);
     }
    }

    void Visit(char e)
    {
     printf("%c", e);
    }

  • 相关阅读:
    P2832 行路难
    P2634 [国家集训队]聪聪可可
    模拟退火算法
    洛谷 P2986 [USACO10MAR]Great Cow Gat…(树形dp+容斥原理)
    bzoj1040: [ZJOI2008]骑士(基环树dp)
    洛谷P2014 选课(树形dp)
    洛谷P3047 [USACO12FEB]Nearby Cows(树形dp)
    bzoj1026: [SCOI2009]windy数(数位dp)
    hdu3555Bomb(数位dp)
    hdu3652B-number(数位dp)
  • 原文地址:https://www.cnblogs.com/wdc123/p/3397247.html
Copyright © 2011-2022 走看看