Chào, Khách!
  1. hongoctrien
    Offline
    hongoctrien   [2.449/2.464]
    In ra màn hình theo kiểu Tiền tố, trung tố, hậu tố các ký tự kiểu chuỗi.

    Mã:
    #include<stdio.h>
    #include<conio.h>
    typedef char TData;
    typedef struct TTree	{	TData Data;
    							TTree *left;
    							TTree *right;
    						};
    TTree *insert(TData v,TTree *l,TTree *r)
    {	TTree *N;
    	N=new TTree;
    	N->Data=v;
    	N->left=l;
    	N->right=r;
    	return N;
    }
    
    void PreOrder(TTree *T)
    {	TTree *p;
    	p=T;
    	if (p!=NULL)
    	{	printf("%5c",p->Data);
    		PreOrder(p->left);
    		PreOrder(p->right);
    	}
    }
    
    void InOrder(TTree *T)
    {	TTree *p;
    	p=T;
    	if (p!=NULL)
    	{	InOrder(p->left);
    		printf("%5c",p->Data);
    		InOrder(p->right);
    	}
    }
    
    void PosOrder(TTree *T)
    {	TTree *p;
    	p=T;
    	if (p!=NULL)
    	{	PosOrder(p->left);
    		PosOrder(p->right);
    		printf("%5c",p->Data);
    	}
    }
    
    void main()
    {	TTree *T;
    	clrscr();
    	T=NULL;
    	T=insert('B',insert('A',insert('U',NULL,NULL),insert('V',NULL,insert('Z',NULL,NULL))),insert('C',insert('D',NULL,NULL),insert('K',insert('F',NULL,NULL),insert('G',NULL,NULL))));
    	printf("\nTien to  : ");
    	PreOrder(T);	printf("\n");
    	printf("\nTrung to : ");
    	InOrder(T);		printf("\n");
    	printf("\nHau to   : ");
    	PosOrder(T);	printf("\n");
    	getch();
    }
    Ctrl+F9, dinhvinh07, takechij2 người khác thích bài này.
  2. takechij
    Offline
    takechij   [386/165]
    sao bữa nay môn cấu trúc dữ liệu không dùng đệ quy nữa à, sao ít thấy khóa sau dùng đệ quy nhỉ
  3. hongoctrien
    Offline
    hongoctrien   [2.449/2.464]
    Giảng viên vẫn dạy đệ quy, nhưng có lẽ cách này dễ hơn :)
  4. trieutulong
    Offline
    trieutulong   [87/8]
    trên đây mới chỉ là kí tự
    T=insert('B',insert('A',insert('U',NULL,NULL),insert('V',NULL,insert('Z',NULL,NULL))),insert('C',insert('D',NULL,NULL),insert('K',insert('F',NULL,NULL),insert('G',NULL,NULL))));
    ví dụ: Cần chèn AA, BB, CC thì làm sao?
    đang thắc mắc chưa có lời giải ,

    với lại ai có code bài cây sinh viên cho mình xin
  5. takechij
    Offline
    takechij   [386/165]
    dùng đệ quy dễ hơn chứ em, lại còn áp dụng được cho nhiều bài toán khác nhau nữa
  6. hongoctrien
    Offline
    hongoctrien   [2.449/2.464]
    Kiểu dữ liệu khai báo là kiểu chuổi, nên bạn có thể dùng nhiều ký tự ở đó
    Còn bài Sinh viên, nó đã ra đi cùng cái HDD của mình, giờ bận quá không viết lại được, bạn nào có sẵn gửi lên mọi người tham khảo với nhé
    trieutulong thích bài này.
  7. tangvanbinh
    Offline
    tangvanbinh   [449/197]
    Đệ quy thầy vẫn dạy nhưng thầy lại không khuyến khích dùng....
  8. trieutulong
    Offline
    trieutulong   [87/8]
    thank Triển nhưng mình đã thử rồi, 1 kí tự thì được còn 2 kí tự trở lên thì chịu

    Nhờ mấy bạn xe giùm sai ở đâu
    Mã:
    #include <stdio.h>
    #include <conio.h>
    #include<string.h>
    typedef int TData;
    typedef struct list{
            TData Data[10];
            list* left;
            list* right;
            };
    typedef list* tree;
    //chen//
    tree chen(TData v,tree l,tree r)
    {tree p;
        p = new list;
        p->Data[10] = v;
        p->left=l;
        p->right =r;
        return p;
    }
    //tien to //
    void tiento(tree T)
    {tree p;
        p=T;
        if(p!=NULL)    {
            printf("\t%s ",p->Data);
            tiento(p->left);
            tiento(p->right);
        }
    }
    //trung to//
    void trungto(tree T)
    {tree p;    p = T;
        if(p!=NULL){
            trungto(p->left);
            printf("\t%s ",p->Data);
            trungto(p->right);
        }
    }
    //hau to //
    void hauto(tree T)
    {tree p;    p = T;
        if(p != NULL){
            hauto(p->left);
            hauto(p->right);
            printf("\t%s ",p->Data);
        }
    }
    
    //ham chinh//
    void main()
    {tree T;
    //    T= chen(5, chen(15, chen(25,NULL,chen(35,NULL, chen(50,NULL, chen(100,NULL,NULL)))),NULL),NULL); //
        T = chen('AA',chen('BB',NULL,chen('CC',chen ('DD',NULL,NULL),chen ('EE',NULL,NULL))),chen('FF',chen ('GG',NULL,NULL),chen ('HH',NULL,NULL)));
        printf("\n============================================================================\n");
        printf("TIEN TO:");
        tiento(T);printf("\n");
        printf("TRUNG TO:");
        trungto(T); printf("\n");
        printf("HAU TO:\t");
        hauto(T); printf("\n");
        printf("\n============================================================================\n");
        getch();