首页 > 编程知识 正文

二叉树的层次遍历代码,遍历二叉树口诀

时间:2023-05-03 11:29:39 阅读:14428 作者:3319

【问题描述】

写一种按层次顺序遍历二叉树的算法

实验要求:以二叉链表为存储结构的【输入形式】

将扩展二叉树之前的扫描序列作为输入,制作二叉树。

【输出形式】

输出层次结构中遍历节点的编号。 各层次按从左到右的顺序输出。

【样品输入】

AB#D##C##

【样品输出】

ABCD

//二叉树# include stdio.h # include stdlib.h # include string.h # define maxsize 128//二叉树typedef struct Node{ char data; //数据元素struct Node* lchild; //指向左子节点struct Node* rchild; //指向右边子节点(}BiNode; //struct Node的别名typedef bi node * bi树; //序列团队typedef struct Queue{ int front; //小组头指针(实际上不是指针) int rear; //团队指针(实际上不是指针) BiNode* data[MaxSize]; //存储队中的元素(保存指针的数组) }SqQueue; //struct Queue别名//创建二叉树的BiTree CreateTree () { BiTree T; char x=getchar (; if(x=='# ' )返回t=null; if(x=='n ' )返回t; ELSE{t=(bitree ) malloc ) sizeof (bi node ); T-data=x; T-lchild=CreateTree (; T-rchild=CreateTree (; 返回t; }//层序遍历voidleverorder(bitreet ) {BiNode *q=NULL; //创建并移动临时指针q以访问输出节点SqQueue* Q; //队列qq=(sqqueue* ) malloc (sizeof ) sqqueue ) ); 在//q中获取(创建)地址Q-front=Q-rear=-1; if(t==null )返回; Q-data[ Q-rear]=T; while(q-front!=Q-rear () {q=Q-data[ Q-front]; printf('%c ',q-data ); IF (q-LED!=NULL ) Q-data[ Q-rear]=q-lchild; IF (q-Fild!=NULL ) Q-data[ Q-rear]=q-rchild; } } int main () {BiTree T; t=创建树(; 级别顺序(t; 返回0; }//kydppx月

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。