第十周项目1(1)-层次遍历算法的验证
来源:互联网 发布:网络新词汇大全 编辑:程序博客网 时间:2024/06/06 04:11
btree.h
#ifndef BTREE_H_INCLUDED#define BTREE_H_INCLUDED#define MaxSize 100typedef char ElemType;typedef struct node{ ElemType data; //数据元素 struct node *lchild; //指向左孩子 struct node *rchild; //指向右孩子} BTNode;void CreateBTNode(BTNode *&b,char *str); //由str串创建二叉链BTNode *FindNode(BTNode *b,ElemType x); //返回data域为x的节点指针BTNode *LchildNode(BTNode *p); //返回*p节点的左孩子节点指针BTNode *RchildNode(BTNode *p); //返回*p节点的右孩子节点指针int BTNodeDepth(BTNode *b); //求二叉树b的深度void DispBTNode(BTNode *b); //以括号表示法输出二叉树void DestroyBTNode(BTNode *&b); //销毁二叉树#endif // BTREE_H_INCLUDEDbtree.cpp
#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;}
阅读全文
0 0
- 第十周项目1层次遍历算法的验证
- 【第十周】项目1-层次遍历算法的验证
- 第十周项目 1 — 验证算法 (1)层次遍历算法的验证
- 第十周项目一验证算法 (1)层次遍历算法的验证
- 第十一周项目1-1层次遍历算法的验证
- 第十一周项目1层次遍历算法的验证
- 第十一周项目1(1)层次遍历算法验证
- 第十一周项目1-验证算法(层次遍历)
- 第十周项目1(1)-层次遍历算法的验证
- 第十周项目1(1)-层次遍历算法的验证
- 第十周项目一 层次遍历算法的验证(1)
- 第十一周项目1—验证算法(1)层次遍历算法的验证
- 第十一周项目1验证算法(1)层次遍历算法的验证
- 第十一周实践项目1 - 二叉树算法验证(1)层次遍历算法的验证
- 第十一周实践项目1—验证算法(1)层次遍历算法的验证
- 第十一周项目1-验证算法(1)层次遍历算法的验证
- 第十一周项目1-验证算法(1)层次遍历算法的验证
- 第十一周项目1-验证算法(1)层次遍历算法的验证
- HAProxy介绍
- c++学习笔记--拷贝控制的三/五法则
- java使用session和cookie
- 微信小程序支付(java后端)
- jQuery遍历-祖先
- 第十周项目1(1)-层次遍历算法的验证
- 博客目录
- ADB server didn't ACK 问题解决方式
- $http
- 第十周项目一
- Java中的对象比较
- 今天什么都不想说,静静的看就好了
- CSS Hack技术详解,支持IE 6-11、Chrome、FireFox、Safari、Opera
- GPIO模拟I2C程序实现