層次遍歷算法筆試題
層次遍歷算法
// 二叉樹的數(shù)據(jù)結(jié)構(gòu)
structBinaryTree
{
int value; // 不寫模板了,暫時用整形代替節(jié)點的數(shù)據(jù)類型
BinaryTree *left;
BinaryTree *right;
};
BinaryTree*root; // 已知二叉樹的`根節(jié)點
//層次遍歷
voidLevel( const BinaryTree *root )
{
Queue *buf = new Queue(); // 定義一個空隊列,假設(shè)此隊列的節(jié)點數(shù)據(jù)類型也是整形的
BinaryTree t; // 一個臨時變量
buf.push_back(root); //令根節(jié)點入隊
while( buf.empty == false ) // 當(dāng)隊列不為空
{
p = buf.front(); // 取出隊列的第一個元素
cout<<p->value<<' ';
if( p->left != NULL ) // 若左子樹不空,則令其入隊
{
q.push( p->left );
}
if( p->right != NULL ) // 若右子樹不空,則令其入隊
{
q.push( p->right );
}
buf.pop(); // 遍歷過的節(jié)點出隊
}
cout<<endl;
}
【層次遍歷算法筆試題】相關(guān)文章:
4.筆試題(算法類)
7.360筆試題目
8.360筆試題目