当前位置: 首页 > news >正文

二叉树的层序遍历及代码

5.3.1二叉树的层序遍历

1781599348994

1781599362200

#include<stdio.h>void LevelOrder(BiTree T){LinkQueue Q;InitQueue(Q);// 初始化辅助队列 BiTree p;EnQueue(Q,T);//将根节点入队 while(!IsEmpty(Q)){//队列不空则循环 DeQueue(Q,p);//对头结点出队 visit(p);//访问出队节点 if(p->lchild!=NULL)Enqueue(Q,p->lchild)//左孩子入队 if(p->rchild!=NULL)Enqueue(Q,p->rchild)//右孩子入队 }
}

1781600114968

#include<stdio.h>
#include<stdlib.h>//二叉树的结点(链式存储) 
typedef struct BiTNode{char data;struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;//链式队列结点 
typedef struct LinkNode{BiTNode *data;struct LinkNode *next;
}LinkNode;typedef struct{LinkNode *front,*rear;//队头队尾 
}LinkQueue; void LevelOrder(BiTree T){LinkQueue Q;InitQueue(Q);// 初始化辅助队列 BiTree p;EnQueue(Q,T);//将根节点入队 while(!IsEmpty(Q)){//队列不空则循环 DeQueue(Q,p);//对头结点出队 visit(p);//访问出队节点 if(p->lchild!=NULL)EnQueue(Q,p->lchild);//左孩子入队 if(p->rchild!=NULL)EnQueue(Q,p->rchild);//右孩子入队 }
}
# 可运行
#include<stdio.h>
#include<stdlib.h>//二叉树结点
typedef struct BiTNode{char data;struct BiTNode *lchild,*rchild;
}BiTNode, *BiTree;//链式队列结点
typedef struct LinkNode{BiTNode *data;struct LinkNode *next;
}LinkNode;typedef struct{LinkNode *front,*rear;
}LinkQueue;//队列基础函数声明
void InitQueue(LinkQueue *Q);
bool IsEmpty(LinkQueue *Q);
bool EnQueue(LinkQueue *Q, BiTNode *x);
bool DeQueue(LinkQueue *Q, BiTNode *&x);
void visit(BiTNode *p);//层序遍历
void LevelOrder(BiTree T){if(T == NULL) return;  //空树直接返回LinkQueue Q;InitQueue(&Q);         //传队列地址BiTree p;EnQueue(&Q, T);while(!IsEmpty(&Q)){DeQueue(&Q, p);visit(p);if(p->lchild != NULL)EnQueue(&Q, p->lchild);if(p->rchild != NULL)EnQueue(&Q, p->rchild);}
}//访问函数
void visit(BiTNode *p){printf("%c ", p->data);
}//下面是配套队列实现(大题可一并写上,完整不丢分)
void InitQueue(LinkQueue *Q){Q->front = Q->rear = (LinkNode*)malloc(sizeof(LinkNode));Q->front->next = NULL;
}bool IsEmpty(LinkQueue *Q){return Q->front == Q->rear;
}bool EnQueue(LinkQueue *Q, BiTNode *x){LinkNode *s = (LinkNode*)malloc(sizeof(LinkNode));s->data = x; s->next = NULL;Q->rear->next = s;Q->rear = s;return true;
}bool DeQueue(LinkQueue *Q, BiTNode *&x){if(IsEmpty(Q)) return false;LinkNode *p = Q->front->next;x = p->data;Q->front->next = p->next;if(Q->rear == p) Q->rear = Q->front;free(p);return true;
}

1781600177873

http://www.jsqmd.com/news/1024545/

相关文章:

  • 南宁出金指南:择时变现,回收防坑全解 - 奢侈品回收评测
  • 河北冲孔围挡厂家排行:合规实体厂家深度盘点 - 奔跑123
  • 2026年山东GEO优化服务商挑选指南:核心评判标准与优质机构盘点 - 资讯纵览
  • 福州线上估价线下黄金回收全流程测评,引流高价到店压价套路拆解 - 奢侈品回收评测
  • 2026年上海防水补漏服务商深度评测:从漏点检测到15年质保的完整对比指南 - 优质企业观察收录
  • 分数中等也能冲?东北大学工商管理学院录取线真实水平大公开 - 品牌2026
  • Flutter升级实战指南:从原理到避坑的完整解决方案
  • 2026两轮充电桩帮铺服务商哪家好?实力对比 - 资讯快报
  • 2026年6月不锈钢风机厂家推荐 - 多才菠萝
  • 成都黄金回收——2026年锦江高新区详解,本地连锁高价回收 - 开心测评
  • 绵阳装修公司究竟哪家更靠谱?结合工地走访整理十家优质品牌详细资料 - 装修新知
  • 2026年无锡常州中小企业数字化转型与钉钉管理咨询服务商选购全解析 - 精选优质企业推荐官
  • 如何在Visual Studio中实现专业级Markdown编辑体验:5分钟掌握Markdown Editor v2核心功能
  • 伴奏怎么分离?2026最新实测推荐|5款人声伴奏分离工具对比
  • 2026佛山甲醛检测品牌测评:CMA资质机构4维度严审,40%便携仪器未在有效校准期内 - 环保除醛知识库
  • 终极指南:深度解析《鸣潮》模组开发技术栈与AES加密破解实战
  • 西安靠谱包包回收门店盘点,实价上门拒绝套路 - 名奢变现站
  • 2026广州黄金上门回收只认这家,公安备案设备齐全,打款秒到 - 奢侈品回收评测
  • 连锁酒店布草供应体系的标准化重构与环保实践 - 资讯报道
  • 亨得利腕表送修防骗全合集:线下假冒门店实地实测 + 正规授权网点查询步骤(值得保存收藏) - 亨得利官方维修中心
  • 如何开展校园十佳歌手人气奖评比活动?线上投票制作全攻略|2026班主任零踩坑经验分享 - 微信投票小程序
  • ControlNet-v1-1 FP16模型集:从失控到精准控制的AI绘画革命
  • 2026择校优选|近30年老牌国际校北京力迈,中西双轨全链路安心育人 - 资讯报道
  • 英国8000份数据岗JD实证分析:隐性能力才是职业跃迁关键
  • 北京英国留学理工类英语提升辅导机构:专业要点实战解析汇总 - 虚拟星辰
  • CAD批量打印只用点一下?无需插件,操作巨简单!
  • 2026北京高性价比迷你仓推荐及最新收费参考指南 - 速递信息
  • 2026 广东梅州全域彩钢瓦翻新防水修缮公司 TOP4 权威推荐|优劣对比 + 高分测评 + 避坑指南 - 本地便民网
  • 2026年废旧钢筋调直机厂家推荐指南 - 多才菠萝
  • 2026广州花都区税务合规避坑指南|3家属地合规财税机构测评 - 资讯纵览