1. 程式人生 > >列印二叉樹的葉子節點

列印二叉樹的葉子節點

採用先序法建立一棵二叉樹,設計按先序輸出二叉樹的葉子,二叉樹的資料域型別為字元型,擴充套件二叉樹的葉子結點用‘#’表示,要求可以輸出多棵二叉樹的葉子結點,當二叉樹為空時程式結束。

#include<iostream>
#include<queue>
using namespace std;
struct Node
{
char date;
Node *rightchild;
Node *leftchild;
};
Node *creat()
{
char t;
cin>>t;
if(t=='#')
{
return NULL;
}
else
{
Node *root=new Node;

root->date=t;
root->leftchild=creat();
root->rightchild=creat();
return root;
}
};
//先序 
void front(Node *root)
{
if(root==NULL)
{
return;

else
{
if(root->leftchild==NULL&&root->rightchild==NULL)
cout<<root->date<<" ";
front(root->leftchild);
front(root->rightchild);
}


}


int main()
{
Node *root[10];
int i=0;
for(;i<10;i++)
{
   root[i]=creat();    
   if(root[i]==NULL)
   {
   break;
   }


    }
    for(int j=0;j<i;j++)
    {
    front(root[j]);
    cout<<endl;
}
cout<<"NULL";
return 0;
}