c语言二叉树构造与输出,C语言数据结构树状输出二叉树,谁能给详细的解释一下...
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
void TranslevelPrint(Bitree bt)
{
struct node
{
Bitree vec[MAXLEN]; //存放樹結點
int layer[MAXLEN]; //結點所在的層
int locate[MAXLEN]; //打印結點的位置
int front,rear;
}q;
int i,j,k;
int nLocate;
j = 1;
k = 0;
q.front = 0;
q.rear = 0;
//printf(" ");
printf(" ");
q.vec[q.rear] = bt;
q.layer[q.rear] = 1;
q.locate[q.rear] = 20;
q.rear = q.rear + 1;
while(q.front < q.rear)
{
bt = q.vec[q.front];
i = q.layer[q.front];
nLocate = q.locate[q.front];
if(j < i) //進層打印時換行
{
printf("\n");
printf("\n");
j = j + 1;
k = 0;
while(k < nLocate)
{
printf(" ");
k++;
}
}
while(k < (nLocate-1))
{
printf(" ");
k++;
}
printf("%c",bt->data);
q.front = q.front + 1;
if(bt->lchild != NULL) //左孩子不為空,入隊
{
q.vec[q.rear] = bt->lchild;
q.layer[q.rear] = i + 1;
q.locate[q.rear] = nLocate - pow(2, NLAYER-i-1);
q.rear = q.rear +1;
}
if(bt->rchild != NULL) //右孩子不為空,入隊
{
q.vec[q.rear] = bt->rchild;
q.layer[q.rear] = i + 1;
q.locate[q.rear] = nLocate + pow(2, NLAYER-i-1);
q.rear = q.rear +1;
}
}
}
總結
以上是生活随笔為你收集整理的c语言二叉树构造与输出,C语言数据结构树状输出二叉树,谁能给详细的解释一下...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 美国人均GDP是我国的6倍,工资收入却不
- 下一篇: docker启动mysql容器_Dock