#include#include /* run this program using the console pauser or add your own getch, system("pause") or input loop */struct Node { int data; struct Node *left; struct Node *right; Node(int x) { data = x; left = NULL; right = NULL; }};void LevelOrder(struct Node *root){ if (root == NULL) return; std::queue s; s.push(root); struct Node *tmp = NULL; while(!s.empty()) { tmp = s.front(); s.pop(); printf("%d ", tmp->data); if (tmp->left) s.push(tmp->left); if (tmp->right) s.push(tmp->right); }}int main(int argc, char** argv) { Node *root = new Node(1); root->left = new Node(3); root->left->left = new Node(2); root->left->right = new Node(1); root->left->right->left = new Node(1); root->right = new Node(-1); root->right->left = new Node(4); root->right->left->left = new Node(1); root->right->left->right = new Node(2); root->right->right = new Node(5); root->right->right->right = new Node(2); LevelOrder(root); return 0;}
输出结果:
1 3 -1 2 1 4 5 1 1 2 2