第十一周 项目1-1 二叉树的层次遍历算法
2015-11-27 08:30
393 查看
/* 文件名称:main.cpp 作者 :孙彩虹 完成日期:2015年11月27日 问题描述:实现二叉树的层次遍历算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。 */
部分代码:
#include <stdio.h> #include "btree.h" void LevelOrder(BTNode *b) { BTNode *p; BTNode *qu[MaxSize]; //定义环形队列,存放节点指针 int front,rear; //定义队头和队尾指针 front=rear=-1; //置队列为空队列 rear++; qu[rear]=b; //根节点指针进入队列 while (front!=rear) //队列不为空 { front=(front+1)%MaxSize; p=qu[front]; //队头出队列 printf("%c ",p->data); //访问节点 if (p->lchild!=NULL) //有左孩子时将其进队 { rear=(rear+1)%MaxSize; qu[rear]=p->lchild; } if (p->rchild!=NULL) //有右孩子时将其进队 { rear=(rear+1)%MaxSize; qu[rear]=p->rchild; } } } int main() { BTNode *b; CreateBTNode(b,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))"); printf("二叉树b: "); DispBTNode(b); printf("\n"); printf("层次遍历序列:\n"); LevelOrder(b); DestroyBTNode(b); return 0; }
运行结果:
相关文章推荐
- iOS学习之分段Table View的使用(Grouped样式表格)
- Kruskal算法的验证
- 第10周项目3 利用二叉树遍历思想解决问题
- iOS中 Swift初级入门学习(二)
- 第13周项目1-Prim算法的验证
- 第13周 项目4-Floyd算法验证
- HDU 2686 Matrix HDU 3376 Matrix Again 费用流
- 14.4 GDI 位图对象 (II)
- iOS中 Swift初级入门学习(二)
- NSArray与NSMutableArray 数组与可变数组
- iOS学习之Table View的简单使用
- 2015 11 26 java 配置环境变量
- 第十周实践项目2 - 二叉树遍历的递归算法
- 第七周项目3-负数把正数赶出队列
- 15个必须知道的chrome开发者技巧
- 第13周 项目3-Dijkstra算法的验证
- Android创建自定义控件
- 第十三周项目2-kruskal算法的验证
- 第十三周 项目1-prim算法的验证
- 第十三周 项目一(3)Dijkstra算法的验证(使用图2作为测试用例)