--------------------------------------------------先序遍歷二叉樹--------------------------------------------------
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