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);
    }

  • 相关阅读:
    C#面向对象--类
    Unity DOTS--面向数据编程前的准备
    C#面向对象--命名空间
    C#面向对象--多态
    C#面向对象--继承
    C#中堆和栈的区别
    sql执行顺序
    cookie session
    栈和队列
    c# 单例模式
  • 原文地址:https://www.cnblogs.com/wdc123/p/3397247.html
Copyright © 2011-2022 走看看