二叉树的层次遍历
来源:互联网 发布:淘宝宝贝尺码自定义 编辑:程序博客网 时间:2024/06/05 14:25
/*二叉树的层次遍历*/#include<stdio.h>#define MAX 1000typedef char datatype;typedef struct Binnode{ datatype data; /*数据域*/ struct BinNode* lchild,*rchild; /*指向左、右孩子的指针*/}BinNode,*Bintree;/*按先序创建二叉树*/Bintree CreateTree(Bintree T){ char ch; scanf("%c",&ch); if(ch=='#') return 0; else { T=(Bintree)malloc(sizeof(BinNode)); T->data=ch; T->lchild=CreateTree(T->lchild);/*创建左子树*/ T->rchild=CreateTree(T->rchild);/*创建右子树*/ return T; }}/*层次遍历二叉树*/void Levelorder(Bintree T){ Bintree p; Bintree qu[MAX]; /*定义循环队列,存放节点指针。*/ int front,rear; /*定义队头和队尾指针*/ front=rear=0; /*置队列为空队*/ rear++; qu[rear]=T; /*根节点指针进队*/ while(front!=rear) /*队列不为空*/ { front=(front+1)%MAX; p=qu[front]; /*队头出队*/ printf("%c ",p->data); /*访问节点*/ if(p->lchild!=NULL) /*有左孩子时将其进队*/ { rear=(rear+1)%MAX; qu[rear]=p->lchild; } if(p->rchild!=NULL) /*有右孩子时将其进队*/ { rear=(rear+1)%MAX; qu[rear]=p->rchild; } }}main(){ Bintree t; printf("请按先序的方式输入二叉树的结点元素(注:#表示节点为空):"); t=CreateTree(t); printf("按层次遍历输出:"); Levelorder(t);}
阅读全文
0 0
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历!!!
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- mongodb 3.4更新数据java.lang.IllegalArgumentException: Invalid BSON field name age
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- 参数的常量引用const int &a和引用 int &a的区别
- jq中$()对html元素选择总结
- Java 抽象类和接口的联系与区别
- 二叉树的层次遍历
- http和socket之长连接和短连接区别
- Android7.0 MTK 需求文档(二)
- Java中的线程池的集中管理和监控
- Could not resolve dependencies for project : Failure to find jar was cached in the local reposit
- RxJava2 / RxAndroid2操作符distinct与distinctUntilChanged去重结果异同
- 多线程编程
- 二级指针的理解
- Greenbone Security Assistant is running and listening only on the local interface.解决