C 二叉树的层序遍历
程序员文章站
2024-03-22 18:52:10
...
先序中序后序什么的都好说,但是层序遍历费点劲,但也还行
之前二叉树基本操作在这里
层序遍历就相当于,根节点先进来,再把子节点再都放进来,根节点出去,子节点再将它们的子节点再放进来,它们再出去。就是这样,其实就是个顺序队列,先进先出。
代码如下
//层序遍历
void putout4(BiThrTree T){
//先定个大数组,就像是用数组形式定了二叉树的存储结构
BiThrTree q[100];
q[0] = T;
//front就是要输出的游标,rear是新进来点存储的游标
int front = 0;
int rear = 1;
//rear就比front大,说明数组里面还有没输出的节点
while (front < rear) {
//我front按部就班地往后走,每次加一
printf("%c ", q[front]->data);
//只要树节点有左孩子节点那么rear就加1
if (q[front]->LeftTreeNode) {
q[rear++] = q[front]->LeftTreeNode;
}
//只要树节点有右孩子节点那么rear就加1
if (q[front]->RightTreeNode) {
q[rear++] = q[front]->RightTreeNode;
}
//继续往后走
++front;
}
}
上一篇: Nginx配置https双向认证
下一篇: 一维搜索之割线法(函数逼近法)