第11周项目1-验证算法(1)层次遍历算法的验证

来源:互联网 发布:模拟化学反应的软件 编辑:程序博客网 时间:2024/04/28 08:20
问题:[cpp] view plain copy  在CODE上查看代码片派生到我的代码片/*  Copyright (c)2016,烟台大学计算机与控制工程学院  All rights reserved.  文件名称:项目1-1.cbp  作    者:朱建豪  完成日期:2016年11月13日  版 本 号:v1.0  问题描述:实现二叉树的层次遍历算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。   输入描述:无  程序输出:测试数据  */    头文件及功能函数详见【二叉树算法库】代码:[cpp] view plain copy  在CODE上查看代码片派生到我的代码片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;    }    

运行结果:


知识点总结:

层次遍历算法。

0 0
原创粉丝点击