C语言-数据结构(下列代码求注释)
voidlevel(consttree*tp){//层序Node*queue[8];//队列intfront,rear;front=rear=0;queue[rear++...
void level(const tree *tp){ //层序
Node *queue[8]; //队列
int front,rear;
front=rear=0;
queue[rear++]=*tp;
while(front<rear){
printf("%c",queue[front]->data);
if(queue[front]->lchild )
queue[rear++]=queue[front]->lchild;
if(queue[front]->rchild )
queue[rear++]=queue[front]->rchild;
front++;
}
} 展开
Node *queue[8]; //队列
int front,rear;
front=rear=0;
queue[rear++]=*tp;
while(front<rear){
printf("%c",queue[front]->data);
if(queue[front]->lchild )
queue[rear++]=queue[front]->lchild;
if(queue[front]->rchild )
queue[rear++]=queue[front]->rchild;
front++;
}
} 展开
1个回答
展开全部
这个程序是实现将一个二叉树安装左序优先的顺序存放在一个顺序数组中
void level(const tree *tp){ //tp指针给定一个二叉树根节点
Node *queue[8]; //保存各节点指针的顺序数组, 程序中默认节点数小于8
int front,rear; //当前处理节点位置和当前保存节点位置
front=rear=0; //当前queue中没有待处理节点
queue[rear++]=*tp; //根节点指针存放到queue[0]位置
while(front<rear){ //如果数组中仍有待处理节点则继续循环,结束循环:二叉树节点均处理完毕
printf("%c",queue[front]->data); //输出正在处理的节点数据内容
if(queue[front]->lchild ) //如果当前节点有左侧子节点
queue[rear++]=queue[front]->lchild; //将有效左侧子节点存入数组
if(queue[front]->rchild ) //如果当前节点有右侧子节点
queue[rear++]=queue[front]->rchild; //将这个有效的右侧子节点存入数组
front++; //处理下一个待处理节点(肯定是前面节点的子节点,左侧子节点存放在前)
}
}
void level(const tree *tp){ //tp指针给定一个二叉树根节点
Node *queue[8]; //保存各节点指针的顺序数组, 程序中默认节点数小于8
int front,rear; //当前处理节点位置和当前保存节点位置
front=rear=0; //当前queue中没有待处理节点
queue[rear++]=*tp; //根节点指针存放到queue[0]位置
while(front<rear){ //如果数组中仍有待处理节点则继续循环,结束循环:二叉树节点均处理完毕
printf("%c",queue[front]->data); //输出正在处理的节点数据内容
if(queue[front]->lchild ) //如果当前节点有左侧子节点
queue[rear++]=queue[front]->lchild; //将有效左侧子节点存入数组
if(queue[front]->rchild ) //如果当前节点有右侧子节点
queue[rear++]=queue[front]->rchild; //将这个有效的右侧子节点存入数组
front++; //处理下一个待处理节点(肯定是前面节点的子节点,左侧子节点存放在前)
}
}
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询