易采站长站为您分析C++非递归队列实现二叉树的广度优先遍历,实例分析了遍历二叉树相关算法技巧,并附带了两个相关算法实例,需要的朋友可以参考下
本文实例讲述了C++非递归队列实现二叉树的广度优先遍历。。具体如下:
广度优先非递归二叉树遍历(或者说层次遍历):
- void widthFirstTraverse(TNode* root) { queue<TNode*> q; // 队列
- q.enqueue(root); TNode* p;
- while(q.hasElement()) { p = q.dequeue(); // 队首元素出队列
- visit(p); // 访问p结点 if(p->left)
- q.enqueue(p->left); if(p->right)
- q.enqueue(p->right); }
- }
附带两个相关示例:
1. 递归先序遍历二叉树
- void preTraverse(TNode* root) { if(!root)
- return; visit(root);
- preTraverse(root->left); preTraverse(root->Right);
- }










