二叉树四种遍历

void PreorderTraversal(BinTree BT)
{
  if(BT==NULL)
    return;
  printf(" %c",BT->Data);
  PreorderTraversal(BT->Left);
  PreorderTraversal(BT->Right);
}
void InorderTraversal(BinTree BT)
{
  if(BT==NULL)
    return;
  InorderTraversal(BT->Left);
  printf(" %c",BT->Data);
  InorderTraversal(BT->Right);
}
void PostorderTraversal(BinTree BT)
{
  if(BT==NULL)
    return;
  PostorderTraversal(BT->Left);
  PostorderTraversal(BT->Right);
  printf(" %c",BT->Data);
}
void LevelorderTraversal(BinTree BT)
{
  int p=0,q=0;
  BinTree b[10000],c;
  if(BT==NULL)
    return ;
  b[q++]=BT;
  while(p!=q)
  {
    c=b[p++];
    printf(" %c",c->Data );
    if(c->Left) b[q++]=c->Left;
    if(c->Right) b[q++]=c->Right;
  }
}

猜你喜欢

转载自blog.csdn.net/dilly__dally/article/details/81142241