加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

二叉树-C++ | 层级顺序遍历二叉树_2

发布时间:2020-12-15 04:51:23 所属栏目:百科 来源:网络整理
导读:层级顺序遍历二叉树? /* Binary tree - Level Order Traversal */ #include #include 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

层级顺序遍历二叉树?

/* Binary tree - Level Order Traversal */

#include

#include

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 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<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);

}

编程就是算法和数据结构,算法和数据结构是编程的灵魂。?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读