第十一周项目一:验证算法,层次算法的验证(1)
2015-12-07 17:02
357 查看
/* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:项目1-1.cbp 作 者:孙立立 完成日期:2015年12月7日 版 本 号:v1.0 问题描述:实现二叉树的层次遍历算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。 输入描述:无 程序输出:测试数据 */
头文件及功能函数详见【二叉树算法库】
main.cpp文件代码:
#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 *b1,*b2; CreateBTNode(b1,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))"); printf("二叉树b1: "); DispBTNode(b1); printf("\n"); printf("层次遍历序列:\n"); LevelOrder(b1); printf("\n\n"); DestroyBTNode(b1); CreateBTNode(b2,"A(B(D,E(H(J,K(L,M(,N)))))"); printf("二叉树b2: "); DispBTNode(b2); printf("\n"); printf("层次遍历序列:\n"); LevelOrder(b2); DestroyBTNode(b2); return 0; }
运行结果:
相关文章推荐
- Heartbeat(v1、v2、pacemaker)集群组件概述
- struts2执行原理
- 详细讲述iOS自定义转场
- iOS开发 3D-touch使用
- 5)二叉树[1]二叉树的遍历(先序、中序、后序)
- 黑马程序员——OC之类方法与set、get方法
- Android -wifi 直连(wifi direct )
- 第15周项目1-验证算法
- 第十五周--项目3B-树的基本操作
- 2015-12-7 项目2—用哈希法组织关键字
- 第14周项目1(1) 验证折半查找算法
- 第十五周项目-B-树的基本操作
- jackson操作对象json互转
- nginx 安装
- Bayeux协议
- HybridApp解决方案_No1_混合模式(Hybrid)App开发概述
- java volatile 和Transient 关键字
- 今日起暂更学习日志
- 第十五周 项目二(1) 用哈希法组织关键字
- 第16周项目1验证算法