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(); }
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
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é
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();