編程:按先序序列輸出二叉樹的葉子結點


源程序:

#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