1 // 广度优先遍历二叉树(BFS).cpp: 定义控制台应用程序的入口点。
2 //
3
4 #include "stdafx.h"
5
6
7 #include <iostream>
8 #include <stdio.h>
9 #include <malloc.h>
10 #include <stdlib.h>
11
12 using namespace std;
13
14 #define QUEUE_INIT_SIZE 100
15 typedef char ElemType;
16
17 typedef struct BiNode
18 {
19 ElemType data;
20 struct BiNode *lchild, *rchild;
21 }BiNode, *BiPtr;
22
23 typedef struct queue
24 {
25 int queuesize; //数组的大小
26 int head, tail; //队列的头和尾下标
27 BiPtr *q; //数组头指针
28 }Queue, *QueuePtr;
29
30 int InitQueue(QueuePtr &Q)
31 {
32 Q->queuesize = QUEUE_INIT_SIZE;
33 Q->q = (BiPtr *)malloc(sizeof(BiPtr) * Q->queuesize); //分配内存
34 Q->tail = 0;//数组下标从0开始,tail始终指向队尾元素的下一个位置
35 Q->head = 0;//队列非空时,head始终指向队列首元素
36 return 0;
37 }
38
39 int EnQueue(QueuePtr Q, BiPtr key)
40 {
41 if((Q->tail +
广度优先遍历二叉树(BFS)-C++实现
最新推荐文章于 2024-08-09 23:45:12 发布
本文详细介绍了如何使用C++编程实现二叉树的广度优先遍历(BFS)算法,内容涵盖二叉树的基本概念、BFS算法原理以及具体的代码实现,帮助读者理解并掌握这一重要的数据结构操作。
摘要由CSDN通过智能技术生成