编程:按先序序列输出二叉树的叶子结点


源程序:

#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("请按以下两种序列输入二叉树的结点:\n");

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

  createbitree(t);

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

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

  system("pause");

}

 

运行结果:


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM