问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用c语言编一个算法 按层次遍历二叉树的结点?

发布网友 发布时间:2022-04-25 14:08

我来回答

1个回答

热心网友 时间:2023-10-08 13:42

#include<stdio.h>
#include<malloc.h>
// 定义队列的最大长度
#define QUEUE_LENGTH 100
//
// 二叉树与双向链表数据结构定义,
//
typedef struct struNode
{
int data;
struct struNode *lchild; //二叉树中的左子树或双向链表中的前向指针
struct struNode*rchild; //二叉树中的右子树或双向链表中的后向指针
}BitNode , *BitNodePtr , DuLNode , *DuLNodePtr;
//
// 生成二叉树
//
BitNodePtr Create_bitree()
{
int m;
BitNodePtr T;
T = NULL;
scanf("%d", &m);
if(m)
{
T = (BitNodePtr)malloc(sizeof(BitNode));
T->data = m;
T->lchild = Create_bitree();
T->rchild = Create_bitree();
}
return T;
}
//
// 层次遍历二叉树
//
void ReadBitTree(BitNodePtr pRoot)
{
BitNodePtr pQueue[QUEUE_LENGTH];
int head = 0 , tail = 1;
pQueue[0] = pRoot;
//结束的条件是head向后移动一个位置后,与tail重合
while (head != tail)
{
printf("%d " , pQueue[head]->data);
//左孩子入队列
if (pQueue[head]->lchild)
{
pQueue[tail] = pQueue[head]->lchild;
tail = (tail + 1) % QUEUE_LENGTH;
if (tail == head)
{
//队列长度太小,退出
printf("Queue overflow!");
return;
}
}
//右孩子入队列
if (pQueue[head]->rchild)
{
pQueue[tail] = pQueue[head]->rchild;
tail = (tail + 1) % QUEUE_LENGTH;
if (tail == head)
{
//队列长度太小,退出
printf("Queue overflow!");
return;
}
}
//队首出队列
head = (head + 1) % QUEUE_LENGTH;
}
printf("\n");
return;
}
void main()
{
BitNodePtr Root;
Root = Create_bitree();
ReadBitTree(Root);
return;
}追问写一个简单一点的,只要算法。严蔚敏c语言版的源代码。

追答这还不简单?一个生成树的函数,一个遍历函数,一个主函数。你想要简单到什么程度呢?别给我说觉得程序太长,不想看。这么大一个程序,一点悬赏都没有,还好意思说让我再给你写个简单点的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 试完成二叉树按层次(同一层自左至右)遍历的算法。 二叉树的遍历操作实现 编写按层次顺序(同一层从左至右)遍历二叉树的算法 二叉树 按层遍历 递归的算法 二叉树的层次遍历以及用层次遍历算法显示所有叶子节点 设完成二叉树按层次(同一层自左至右)遍历的算法。 南京2015年三级公共营养师上半年考试试题 公共营养师的考试试题???哪能下载 二级营养师营养学基础试题中有简答和论述题? 公共营养师考试试卷共几道题,都是什么类型? 2020营养师基础知识试题及答案(7) “安了”是什么意思啊? 用“安”组词有哪些? 安()()() 中国目前手机网络运营商有哪些啊?GSM,CDMA,WCDMA分别指什么? 装宽带用哪家运营商好??? 家庭上网用哪个运营商比较好啊 拉宽带用哪家运营商的好?怎么选? 哪个运营商的宽带最好 家里想安宽带,三个运营商选择哪个比较好? 在按层次遍历二叉树的算法中,需要借助的辅助数据结构是 海城市人力资源和社会保障局官网 二叉树遍历演示 海城市劳动局电话是多少? 前序遍历建立数据类型为float二叉树,按层次遍历二叉树输出 在海城办社保卡什么时间给发卡? java实现二叉树层次遍历 海城社保局个人查询老农保 试用文字表达按照层次遍历二叉树的思想。 鞍山市人力资源和社会保障局网 以二叉连表做存储结构,试编写按层次顺序遍历二叉树的算法 辽宁省人力资源和社会保障局官网 二叉树层次遍历问题,高手帮忙啊~ 辽宁海城伤残在哪个部门鉴定 海城个人如何办社保 社保局和人力资源与社会保障局是啥关系???乡镇、社保局哪个好些?? 微信好友被删了,自己又不知道他的了。怎么找回? 把微信好友删除了!我怎么找回他的微信!没有记住,也没有手机号 微信好友被删了,自己又不知道他的了。怎么找回? 微信好友被我不小心删了,怎么找回