void Level_order(Tree T, void (*visit)(Tree ThisNode))
{
Tree a[105];
int front, rear, i;
i = front = rear = 0;
a[rear] = T;
if (a[i] == NULL) return;
while (i <= rear)
{
if (a[i]->Left != NULL)
{
rear++;
a[rear] = a[i]->Left;
}
if (a[i]->Right != NULL)
{
rear++;
a[rear] = a[i]->Right;
}
i++;
}
for (i = 0; i <= rear; i++)
{
(*visit)(a[i]);
}
return;
}
{
Tree a[105];
int front, rear, i;
i = front = rear = 0;
a[rear] = T;
if (a[i] == NULL) return;
while (i <= rear)
{
if (a[i]->Left != NULL)
{
rear++;
a[rear] = a[i]->Left;
}
if (a[i]->Right != NULL)
{
rear++;
a[rear] = a[i]->Right;
}
i++;
}
for (i = 0; i <= rear; i++)
{
(*visit)(a[i]);
}
return;
}
本文介绍了一种实现二叉树层序遍历的方法,使用数组存储每一层的节点,并通过递增的方式记录队列的头部和尾部,确保每个节点只被访问一次。最后对所有节点进行操作。
4897

被折叠的 条评论
为什么被折叠?



