zoukankan      html  css  js  c++  java
  • 编程:按先序序列输出二叉树的叶子结点

    源程序:

    #include <iostream>

    #include <stack>

    using namespace std;

    typedef struct bitreenode

    {

      char data;

      struct bitreenode *lchild, *rchild;

    }*Bitree;

    //创建二叉树

    void createbitree(Bitree &T)

    {

      char data;

      data = getchar();

      if (data == '#')

      {

        T = NULL;

      }

      else

      {

        T = new bitreenode;

        T->data = data;

        createbitree(T->lchild);

        createbitree(T->rchild);

      }

    }; 

    //按先序次序打印叶子结点

    void pre_leaf(Bitree T)//T 为根结点指针

    {

      if (T!= NULL)

      {

        if (T->lchild == NULL && T->rchild == NULL)

          printf("%c", T->data);

        pre_leaf(T->lchild);

        pre_leaf(T->rchild);

      }

    }

    ///////////////主函数///////////////

    void main()

    {

      Bitree t = NULL;

      printf("请按以下两种序列输入二叉树的结点: ");

      printf("AB#D##CE### 或 ABD##E##C#F## ");

      createbitree(t);

      printf("先序次序打印的叶子结点为:");

      pre_leaf(t);//按先序次序打印叶子结点

      system("pause");

    }

    运行结果:

  • 相关阅读:
    HDU 2852 KiKi's K-Number (主席树)
    HDU 2089 不要62
    Light oj 1140 How Many Zeroes?
    Bless You Autocorrect!
    HDU 6201 transaction transaction transaction
    HDU1561 The more ,The better (树形背包Dp)
    CodeForces 607B zuma
    POJ 1651 Mulitiplication Puzzle
    CSUOJ 1952 合并石子
    Uva 1599 Ideal path
  • 原文地址:https://www.cnblogs.com/duanqibo/p/11423535.html
Copyright © 2011-2022 走看看