算法1:遍历二叉树的递归算法

来源:互联网 发布:无法加入网络怎么回事 编辑:程序博客网 时间:2024/05/14 02:05

--------------------------------------------------先序遍历二叉树--------------------------------------------------

Status PreOrderTraverse( Bitree T, Status ( * Visit )( TElemType e ) ) {

 

//  Status PrintElement( TElemType e ) {

//    printf( e );

//    return OK;

//  }

 

  if ( T ) {

    if ( Visit( T -> data ) )

      if ( PreOrderTraverse( T -> lchild, Visit ) )

        if ( PreOrderTraverse( T -> rchild, Visit ) )  return OK;

    return ERROR;

  }

  else  return OK;

 

}

 

--------------------------------------------------中序遍历二叉树--------------------------------------------------

Status InOrderTraverse( Bitree T, Status ( * Visit )( TElemType e ) ) {

 

//  Status PrintElement( TElemType e ) {

//    printf( e );

//    return OK;

//  }

 

  if ( T ) {

    if ( InOrderTraverse( T -> lchild, Visit)

      if ( Visit( T -> data ) )

        if ( InOrderTraverse( T -> rchild, Visit ) )  return OK;

    return ERROR;

  }

  else  return OK;

 

}

 

--------------------------------------------------后序遍历二叉树--------------------------------------------------

Status PostOrderTraverse( Bitree T, Status ( * Visit )( TElemType e ) ) {

 

//  Status PrintElement( TElemType e ) {

//    printf( e );

//    return OK;

//  }

 

  if ( T ) {

    if ( PostOrderTraverse( T -> lchild, Visit )

      if ( PostOrderTraverse( T -> rchild, Visit )

        if ( Visit( T -> data ) )  return OK;

    return ERROR;

  }

  else  return OK;

 

}

 

 

END

 

原创粉丝点击