层级顺序遍历二叉树
/* Binary tree - Level Order Traversal */
#include<iostream>
#include<queue>
using namespace std;
struct Node {
char data;
Node *left;
Node *right;
};
// Function to print Nodes in a binary tree in Level order
void LevelOrder(Node *root) {
if(root == NULL) return;
queue<Node*> Q;
Q.push(root);
//while there is at least one discovered node
while(!Q.empty()) {
Node* current = Q.front();
Q.pop(); // removing the element at front
cout<<current->data<<\" \";
if(current->left != NULL) Q.push(current->left);
if(current->right != NULL) Q.push(current->right);
}
}
// Function to Insert Node in a Binary Search Tree
Node* Insert(Node *root,char data) {
if(root == NULL) {
root = new Node();
root->data = data;
root->left = root->right = NULL;
}
else if(data <= root->data) root->left = Insert(root->left,data);
else root->right = Insert(root->right,data);
return root;
}
int main() {
/*Code To Test the logic
Creating an example tree
M
/ \\
B Q
/ \\ \\
A C Z
*/
Node* root = NULL;
root = Insert(root,\'M\'); root = Insert(root,\'B\');
root = Insert(root,\'Q\'); root = Insert(root,\'Z\');
root = Insert(root,\'A\'); root = Insert(root,\'C\');
//Print Nodes in Level Order.
LevelOrder(root);
}
编程就是算法和数据结构,算法和数据结构是编程的灵魂。
继续阅读与本文标签相同的文章
-
运营专家详解“花呗分期”
2026-05-18栏目: 教程
-
谈一谈 iOS 的锁
2026-05-18栏目: 教程
-
《Android自定义控件开发入门与实战》| 每日读本书
2026-05-18栏目: 教程
-
除了吃月饼,中秋节还能干啥? | 9月12号栖夜读
2026-05-18栏目: 教程
-
图数据库爱好者的聚会在谈论什么?
2026-05-18栏目: 教程
