用c语言代码实现二叉树的层次遍历
时间: 2023-11-23 12:08:00 浏览: 34
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* left;
struct Node* right;
};
struct Node* createNode(int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
void levelOrder(struct Node* root) {
if (root == NULL)
return;
struct Node* queue[100];
int front = 0, rear = 0;
queue[rear] = root;
rear++;
while (front < rear) {
struct Node* current = queue[front];
front++;
printf("%d ", current->data);
if (current->left != NULL) {
queue[rear] = current->left;
rear++;
}
if (current->right != NULL) {
queue[rear] = current->right;
rear++;
}
}
}
int main() {
struct Node* root = createNode(1);
root->left = createNode(2);
root->right = createNode(3);
root->left->left = createNode(4);
root->left->right = createNode(5);
root->right->left = createNode(6);
root->right->right = createNode(7);
printf("Level Order traversal of binary tree is: \n");
levelOrder(root);
return 0;
}