PTA 二叉树的遍历 (15分)
·
前面的三个递归比较好做
最后一个层次遍历 用数组模拟一下
设两头,i是结尾,j是开头
j++就是取出元素
i++就是放进去元素
如果i==j那么就是放完了
void InorderTraversal(BinTree BT)
{
if (!BT)
return;
InorderTraversal(BT->Left);
printf(" %c", BT->Data);
InorderTraversal(BT->Right);
}
void PreorderTraversal(BinTree BT)
{
if (!BT)
return;
printf(" %c", BT->Data);
PreorderTraversal(BT->Left);
PreorderTraversal(BT->Right);
}
void PostorderTraversal(BinTree BT)
{
if (!BT)
return;
PostorderTraversal(BT->Left);
PostorderTraversal(BT->Right);
printf(" %c", BT->Data);
}
void LevelorderTraversal(BinTree BT)
{
if (!BT)
return;
//j是左 i是右
int i, j;
i = j = 0;
BinTree q[100];
q[0] = BT;
i++;
while (j < i)
{
//取出j个
BinTree T = q[j++];
printf(" %c", T->Data);
//进去i个
if (T->Left)
q[i++] = T->Left;
if (T->Right)
q[i++] = T->Right;
}
}
更多推荐
所有评论(0)