| ²é¿´: 263 | »Ø¸´: 0 | ||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | ||
[×ÊÔ´]
¡¾·ÖÏí¡¿¶þ²æÊ÷Ëã·¨
|
||
|
/* Binary tree traversal */ # include struct NODE { char Info; struct NODE *Left_Child; struct NODE *Right_Child; }; struct NODE *Binary_Tree (char *, int, int); void Output(struct NODE *, int ); void Pre_order(struct NODE *); void In_order(struct NODE *); void Post_order(struct NODE *); /* Function to create an binary tree */ struct NODE * Binary_Tree (char *List, int Lower, int Upper) { struct NODE *Node; int Mid = (Lower + Upper)/2; Node = (struct NODE*) malloc(sizeof(struct NODE)); Node->Info = List [Mid]; if ( Lower>= Upper) { Node->Left_Child = NULL; Node->Right_Child = NULL; return (Node); } if (Lower <= Mid - 1) Node->Left_Child = Binary_Tree (List, Lower, Mid - 1); else Node->Left_Child = NULL; if (Mid + 1 <= Upper) Node->Right_Child = Binary_Tree (List, Mid + 1, Upper); else Node->Right_Child = NULL; return(Node); } /* Output function */ void Output(struct NODE *T, int Level) { int i; if (T) { Output(T->Right_Child, Level+1); printf("\n" ;for (i = 0; i < Level; i++) printf(" " ;printf(" %c", T->Info); Output(T->Left_Child, Level+1); } } /* Pre-order traversal */ void Pre_order (struct NODE *Node) { if (Node) { printf(" %c", Node->Info); Pre_order(Node->Left_Child); Pre_order(Node->Right_Child); } } /* In-order traversal */ void In_order (struct NODE *Node) { if (Node) { In_order(Node->Left_Child); printf(" %c", Node->Info); In_order(Node->Right_Child); } } /* Post-order traversal */ void Post_order (struct NODE *Node) { if (Node) { Post_order(Node->Left_Child); Post_order(Node->Right_Child); printf(" %c", Node->Info); } } /* Function main */ void main() { char List[100]; int Number = 0; char Info; char choice; struct NODE *T = (struct NODE *) malloc(sizeof(struct NODE)); T = NULL; printf("\n Input choice 'b' to break:" ;choice = getchar(); fflush(stdin); while(choice != 'b') { printf("\n Input information of the node: " ;scanf("%c", &Info); List[Number++] = Info; fflush(stdin); printf("\n Input choice 'b' to break:" ;choice = getchar(); fflush(stdin); } Number --; printf("\n Number of elements in the list is %d", Number); T = Binary_Tree(List, 0, Number); Output(T,1); printf("\n Pre-order traversal\n" ;Pre_order (T); printf("\n In-order traversal\n" ;In_order (T); printf("\n Post-order traversal\n" ;Post_order (T); } Æß¡¢²âÊÔÊý¾Ý 1 2 3 4 5 6 7 °Ë¡¢²âÊÔÇé¿ö [search]¶þ²æÊ÷[/search] [ Last edited by bslt on 2009-9-4 at 21:54 ] |
» ²ÂÄãϲ»¶
Ò»Ö¾Ô¸°²´óÉúÎïѧ07³õÊÔ322¡¢±¾¿Æ¶þ±¾¡¢µ÷¼ÁÇóÖú
ÒѾÓÐ7È˻ظ´
0856ר˶Çóµ÷¼Á Ï£ÍûÊÇaÇøÔºÐ£
ÒѾÓÐ25È˻ظ´
085600²ÄÁÏÓ뻯¹¤£¬Çóµ÷¼Á
ÒѾÓÐ12È˻ظ´
Ò»Ö¾Ô¸2110£¬»¯Ñ§Ñ§Ë¶310·Ö£¬±¾¿ÆÖصãË«·ÇÇóµ÷¼Á
ÒѾÓÐ19È˻ظ´
²ÄÁϹ¤³Ì085601£¬270Çóµ÷¼Á
ÒѾÓÐ33È˻ظ´
¸´ÊÔµ÷¼Á
ÒѾÓÐ12È˻ظ´
ÐÂÒ»´úµç×ÓÐÅÏ¢294Çóµ÷¼Á ²»ÌôѧУ
ÒѾÓÐ8È˻ظ´
290µ÷¼ÁÉúÎï0860
ÒѾÓÐ29È˻ظ´
279ѧ˶ʳƷרҵÇóµ÷¼ÁԺУ
ÒѾÓÐ15È˻ظ´
310Çóµ÷¼Á
ÒѾÓÐ14È˻ظ´













;
»Ø¸´´ËÂ¥
5