【第11周 项目1 - 二叉树算法验证(1)层次遍历算法的验证】
2015-11-23 16:51
246 查看
问题及代码:
/* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第十一周项目1 - 二叉树算法验证.cpp 作 者:刘强 完成日期:2015年11月23日 版 本 号:v1.0 问题描述: 运行并重复测试教学内容中涉及的算法。改变测试数据进行重复测试的意义在于,可以从更多角度体会算法,以达到逐渐掌握算法的程度。使用你的测试数据,并展示测试结果,观察运行结果,以此来领会算法。 输入描述: 若干测试数据。 程序输出: 对应数据的输出。 */
二叉树代码
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; }
运行结果
知识点总结:
层次遍历算法相关文章推荐
- QT中QFileDialog的使用
- Java反射机制getClass()函数
- 对linux 多路复用Epoll模型的水平出发模式和边缘触发模式的理解
- PHP模板引擎的原理与实践
- 文章标题
- 一些css小用法总结
- memcpy函数
- 第十二周 项目4-利用遍历思想求解图问题(5)
- Android LruCache图片缓存使用(一)
- 项目4 -- 每对顶点之间的最短路径
- 第十三周项目4-Floyd算法验证
- HDU 2011 多项式求和
- 第十二周 项目四 (2) 利用遍历思想求解图问题
- ShellExecute, WinExec, CreateProcess区别
- 第四周:项目二——建设单链表算法库
- 恢复实战:用完整的数据库文件恢复数据库
- CocoaPods 关于 -bash: pod: command not found问题
- angularJS学习之路(十五)---ng-select
- 选择排序
- asp.net SessionState模式的配置及使用