#include <iostream>;
#include <vector>
using namespace std;
struct Node
{
int data;
Node* LChild;
Node* RChild;
};
void PrintNodeByLevel(Node* root)
{
if(root==NULL)
return;
vector<Node*> vec;
vec.push_back(root);
int cur=0;//当前游标
int last=1;//每层的指针
while(cur<last)
{
last=vec.size();//确定每层节点的最后一个位置,开始位置为cur,last-cur+1就是每层节点的个数
while(cur<last)
{
cout<<vec[cur]->data<<" ";
if(vec[cur]->LChild)
vec.push_back(vec[cur]->LChild);
if(vec[cur]->RChild)
vec.push_back(vec[cur]->RChild);
//访问完一层的一个节点,继续下一个节点
cur++;
}
cout<<endl;
//继续循环下一个节点
}
}
本文介绍了一种使用向量实现二叉树层次遍历的方法,并通过C++代码详细展示了其实现过程。此方法能够有效地按层打印出二叉树中各节点的数据。
784

被折叠的 条评论
为什么被折叠?



