您的位置:首页 > 其它

二叉树层次遍历

2013-05-06 00:31 260 查看
void level_traverse(Node * root, void (*visit)(T&))

/* Post: The tree is traversed level by level, starting from the top.

The operation *visit isapplied to all entries.

*/

{

Node *sub_root;

if (root != NULL) {

queue<Node*> waiting_nodes;

// Queue<Binary_node<Entry> *>
waiting_nodes;

waiting_nodes.push(root);

do {

sub_root =
waiting_nodes.front();

(*visit)(sub_root->data);

if (sub_root->left)
waiting_nodes.push(sub_root->left);

if (sub_root->right)
waiting_nodes.push(sub_root->right);

waiting_nodes.pop();

} while (!waiting_nodes.empty());

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: