欢迎来到天天文库
浏览记录
ID:38714205
大小:31.50 KB
页数:3页
时间:2019-06-18
《建立二叉树与层次遍历二叉树程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include/*I/O函数*/#include"conio.h"#include"stdlib.h"#defineQUEUESIZE100/*队列初始容量*/#defineTRUE1#defineFALSE!TRUE#defineStatuint#defineBitTreeElementTypeint#defineSHUJU"%d"#defineEND-1typedefstructBitnode/*树的链式存储*/{BitTreeElementTypedata;structBitnode*lchild;/*左孩子*/structBi
2、tnode*rchild;/*右孩子*/}BTnode,*BitTree;typedefBitTreeQueueElemtype;typedefstruct/*定义数据结构*/{QueueElemtypedata[QUEUESIZE];intfront;/*队列的头指针*/intrear;/*队列的尾指针*/}queue;intCreateQueue(queue*q);/*创建队列*/intEnQueue(queue*q,QueueElemtypec);/*向队尾插入元素c*/StatuDeQueue(queue*q,QueueElemtype*reb)
3、;/*队头元素出队用reb返回其值*/StatuCreateBitTree(BitTree*T);/*初始化二叉树*/StatuLayerTravelBitTree(BitTreeT);/*层次遍历二叉树*/StatuVisitData(BitTreeElementTypedata);voidmain(){BitTreet;printf("Inputdatatocreatebittreeand'");printf(SHUJU,END);printf("'willmakenulltree.");/*输入根结点*/CreateBitTree(&t);/*
4、初始化二叉树*/printf("Layerordertravelthetree:");/*层次遍历二叉树*/LayerTravelBitTree(t);/*层次遍历二叉树*/}StatuCreateBitTree(BitTree*T)/*初始化二叉树*/{BitTreeElementTypeinputdata;*T=(BitTree)malloc(sizeof(BTnode));printf("EnterData:");/*输入数据*/fflush(stdin);scanf(SHUJU,&inputdata);if(inputdata==END){T
5、=NULL;returnFALSE;}else{(*T)->data=inputdata;/*将输入的数据存入结点*/printf("Createleftsubtree...<");CreateBitTree(&((*T)->lchild));/*递归循环输入左子树*/printf("Createrightsubtree...<");CreateBitTree(&((*T)->rchild));/*递归循环输入右子树*/returnTRUE;}}StatuLayerTravelBitTree(BitTreeT)/*层次遍历二叉树*/{queuetq;/*
6、队列tq*/QueueElemtyperes;/*用来返回对头元素*/CreateQueue(&tq);/*创建队列*/EnQueue(&tq,T);/*将T插入队尾*/while(DeQueue(&tq,&res)==TRUE)/*当队头元素不空时执行while循环*/{if(res){;/*访问队头元素*/if(res->lchild->data!=-1)EnQueue(&tq,res->lchild);/*将结点左孩子插入队尾*/VisitData(res->data);if(res->rchild->data!=-1)EnQueue(&tq,re
7、s->rchild);/*将结点右孩子插入队尾*/}}returnTRUE;}intCreateQueue(queue*q){q->front=-1;q->rear=-1;returnTRUE;}intEnQueue(queue*q,QueueElemtypec)/*将元素c插入队尾*/{q->rear++;/*尾指针加1*/if(q->rear>=QUEUESIZE)/*若尾指针超出队列长度则提示错误*/{printf("Queueoverflow!");exit(0);}q->data[q->rear]=c;return1;}StatuDeQue
8、ue(queue*q,QueueElemtype*ret)/*队头元素出队并用r
此文档下载收益归作者所有