24СʱÈÈÃŰæ¿éÅÅÐаñ    

Znn3bq.jpeg
²é¿´: 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 ]
»Ø¸´´ËÂ¥
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ ºÓ¶Ô°¶µÄÔ µÄÖ÷Ìâ¸üÐÂ
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 085600²ÄÁÏÓ뻯¹¤£¬Çóµ÷¼Á +12 won_qii 2026-04-07 12/600 2026-04-12 17:02 by lhj2009
[¿¼ÑÐ] 291Çóµ÷¼Á +11 ¹ØÒä±±. 2026-04-09 12/600 2026-04-12 10:32 by ÄæË®³Ë·ç
[¿¼ÑÐ] 286Çóµ÷¼Á +26 Faune 2026-04-06 26/1300 2026-04-12 10:24 by lhj2009
[»ù½ðÉêÇë] ɽ¶«Ê¡»ù½ð2026 +5 jerry681 2026-04-08 6/300 2026-04-12 08:33 by kudofaye
[¿¼ÑÐ] ²ÄÁϹ¤³ÌÈÕÓÉúÇóµ÷¼Á +7 0856?µ÷¼Á 2026-04-10 7/350 2026-04-11 21:33 by À¶ÔÆË¼Óê
[¿¼ÑÐ] µ÷¼Á +5 ÎĵÀÐÇ̨ 2026-04-11 5/250 2026-04-11 15:01 by ¿­¿­Òª±ä˧
[¿¼ÑÐ] Çóµ÷¼Á +3 θ¾·ÂÎÀÛÁË 2026-04-11 5/250 2026-04-11 14:13 by luhong1990
[¿¼ÑÐ] »¹Óл¯¹¤¶þÂÖµ÷¼ÁµÄѧУÂð 5+14 »¯¹¤ÈË999 2026-04-09 48/2400 2026-04-11 10:27 by 89436494
[¿¼ÑÐ] Ò»Ö¾Ô¸211£¬»¯Ñ§Ñ§Ë¶£¬310·Ö£¬±¾¿ÆÖصãË«·Ç£¬Çóµ÷¼Á +17 ŬÁ¦·Ü¶·112 2026-04-06 20/1000 2026-04-11 00:31 by wangjihu
[¿¼ÑÐ] ÉúÎïѧ308·ÖÇóµ÷¼Á£¨Ò»Ö¾Ô¸»ª¶«Ê¦´ó£©×ö¹ý·Ö×ÓʵÑé +8 ÏàÐűػá¹ââÍòÕ 2026-04-07 9/450 2026-04-10 21:03 by zhouxiaoyu
[¿¼ÑÐ] ±¾¿ÆÎ÷¹¤´ó 324Çóµ÷¼Á +4 wysyjs25 2026-04-10 4/200 2026-04-10 20:00 by À´¿´Á÷ÐÇÓê10
[¿¼ÑÐ] 362Çóµ÷¼Á +10 ÎÒÒª¿¼´ó 2026-04-06 14/700 2026-04-10 17:00 by luoyongfeng
[¿¼ÑÐ] 273Çóµ÷¼Á +51 ÂóС¶£µ± 2026-04-06 58/2900 2026-04-10 15:54 by jiajinhpu
[¿¼ÑÐ] 265Çóµ÷¼Á +4 ·ç˵ËýÔçÍüÁË 2026-04-07 4/200 2026-04-09 13:59 by onlyÖÜ
[¿¼ÑÐ] ²ÄÁÏ¿¼ÑÐÇóµ÷¼Á×Ü·Ö280 +30 mkjlz1 2026-04-06 35/1750 2026-04-08 21:25 by cyh¡ª315
[¿¼ÑÐ] Çóµ÷¼Á£¬ÏÖÔÚ»¹ÄÜÌîµÄ +3 Éϰ¶Ð¡Ó¨¼ÓÓÍ 2026-04-08 3/150 2026-04-08 14:30 by zhq0425
[¿¼ÑÐ] 277¡¢Ñ§Ë¶£¬Çóµ÷¼Á ÊýÒ»104£¬ +11 Æ¿×ÓPZ 2026-04-07 12/600 2026-04-07 23:30 by Ò»Ö»ºÃ¹û×Ó?
[¿¼ÑÐ] 328Çóµ÷¼Á +4 ghhh88888 2026-04-06 5/250 2026-04-07 14:45 by ghhh88888
[¿¼ÑÐ] Ò»Ö¾Ô¸±±½»´ó²ÄÁϹ¤³Ì×Ü·Ö358Çóµ÷¼Á +10 cs0106 2026-04-05 12/600 2026-04-06 19:41 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 307Çóµ÷¼Á +3 ËùÄî¼°ËùÍû 2026-04-06 3/150 2026-04-06 17:30 by ÍÁľ˶ʿÕÐÉú
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û