Đề bài: Tạo cây nhị phân như hình, xuất ra tiền tố, trung tố, hậu tố , số nút, số lá và số nhánh? Mã: #include<conio.h> #include<stdio.h> int Nut=0,La=0; struct TTree{ char Data; TTree *left; TTree *right; }; TTree *Q,*P,*T; void Taonut(char C) { P=new TTree; P->Data=C; P->left=NULL; P->right=NULL; } void PreOrder(TTree *T) //(G-T-P) { TTree *P; P=T; if (P!=NULL) { printf("%3c",P->Data); PreOrder(P->left); PreOrder(P->right); } } void InOrder(TTree *T) //(T-G-P) { TTree *P; P=T; if(P!=NULL) { InOrder(P->left); printf("%3c",P->Data); InOrder(P->right); } } void PosOrder(TTree *T) //(T-P-G) { TTree *P; P=T; if (P!=NULL) { PosOrder(P->left); PosOrder(P->right); printf("%3c",P->Data); Nut++; } } int Sola(TTree *T) //(T-P-G) { TTree *P; P=T; if (P!=NULL) { Sola(P->left); Sola(P->right); if ((P->left==NULL)&&(P->right==NULL)) La++; } return La; } void main() { clrscr(); T=NULL; Taonut('A'); T=P; Taonut('B'); T->left=P; Q=P; Taonut('E'); Q->left=P; Taonut('F'); Q->right=P; Taonut('D'); T->right=P; Q=P; Taonut('G'); Q->left=P; Taonut('H'); Q->right=P; Q=P; Taonut('I'); Q->left=P; Taonut('J'); Q->right=P; printf("\n\nTien to: "); PreOrder(T); printf("\n"); printf("Trung to: "); InOrder(T); printf("\n"); printf("Hau to: "); PosOrder(T); printf("\nSo nut: %d",Nut); printf("\nSo la: %d",Sola(T)); printf("\nSo nhanh: %d",Nut-La); getch(); } File đính kèm (đổi đuôi .TXT thành .CPP nhé):