之前介绍过二叉树以及其相应遍历方式,连接如下:
http://blog.chinaunix.net/uid-31422160-id-5786049.html
这次写个层序遍历的,直接上代码就OK了吧~~~
-
struct Node{
-
int val;
-
struct Node *left;
-
struct Node *right;
-
Node(int x):val(x), left(NULL), right(NULL){}
-
};
-
void LevelTraverse(struct Node *root){
-
if(root == NULL) return;
-
queue<struct Node*> q;
-
struct Node *p;
-
q.push(root);
-
while(!q.empty()){
-
p = q.front();
-
q.pop();
-
cout <<p->val<<endl;
-
if(p->left) q.push(p->left);
-
if(p->right) q.push(p->right);
-
}
-
}
这里用了一个辅助的队列来进行存储各个节点之间的层序关系~~
阅读(2209) | 评论(0) | 转发(0) |