2015年大二上-数据结构-树和二叉树-2-(1)二叉树的层次遍历

来源:互联网 发布:cocos2dx mac 编辑:程序博客网 时间:2024/06/11 01:13

实现二叉树的层次遍历算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。

  请利用二叉树算法库。

/**Copyright (c) 2014,烟台大学计算机学院*All rights reserved.*文件名称:Annpion.cpp*作者:王耀鹏*完成日期:2015年12月24日*版本号:v1.0**问题描述:二叉树的层次遍历*输入描述:无*输出描述:输出二叉树的层次遍历*/#include <stdio.h>#include "BTree.h"void LevelOrder(BTNode *b)     //二叉树的层次遍历{    BTNode *tree[MaxSize],*p;    int front=-1,rear=-1;    ++rear;    tree[rear]=b;    while(rear!=front)    {        front=(front+1)%MaxSize;        p=tree[front];        printf("%c ",p->data);        if(p->lchild!=NULL)        {            rear=(rear+1)%MaxSize;            tree[rear]=p->lchild;        }        if(p->rchild!=NULL)        {            rear=(rear+1)%MaxSize;            tree[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二叉树的层次遍历:");    LevelOrder(b);    DestroyBTNode(b);    return 0;}

运行结果:


注:在main函数中,创建的用于测试的二叉树如下——

这里写图片描述


0 0