#include /* podkluchenie bibliotek*/ #include #include #include #include #define TREE struct tree TREE { char Name[50]; int m1,m2,m3,m4; int Vr; /*nomer vershinu*/ int l; /*chislo vuhodyashih vershin*/ TREE *Point[20]; /*ykzateli na vershinu sledyushego urovnya*/ }; TREE *Que[50]; TREE *ptr_Tree[50]; TREE *ptr_Tre,*ptr_Trt,*Root; int Lp,Rp; /*Vkluchenie elementa v ochered*/ void pushQ(TREE *ptr) { Que[Lp++]=ptr; } /*Ydalenie elementa iz ocheredi*/ TREE *popQ() { return Que[Rp++]; } void TreeForm(int n) /*formirovanie dereva*/ { int i,l,j,Nom; for (i=0; iVr = i+1; } for (i=0; il=l; printf("Kakie vershinu vuhodyat?\n"); for (j=0; jPoint[j]=ptr_Tree[Nom-1]; } } } void Frtln(int Tree[50],int *k) /*frontalnui obhod*/ { int kl,l,j; kl = 0; pushQ(ptr_Tree[0]); while( Lp != Rp ) { ptr_Tre = popQ(); Tree[kl] = ptr_Tre->Vr; kl++; l=ptr_Tre->l; for (j=0; jPoint[j]); *k = kl; } } void Insert_Tree() { } void Del_Tree() { } void Print_Tree() { TREE *ptr_Tr; int j,key; pushQ(Root); while (key!= 0) { clrscr(); ptr_Tre=ptr_Trt; ptr_Trt = popQ(); for(j=0; jl; j++) { ptr_Tr=ptr_Trt->Point[j]; if(ptr_Tr->m1==0) printf("%d%-7s\n",j+1,ptr_Tr->Name); else printf("%d%-7s%d %d %d %d\n",j+1,ptr_Tr->Name,ptr_Tr->m1,ptr_Tr->m2,ptr_Tr->m3,ptr_Tr->m4); } printf("Vvedite key ('0'-to EXIT): "); scanf("%d",&key); if(key>j || key<0) { printf("Takogo klu4a net"); break; } if(key==-1||key==1||key==2||key==3||key==4) { if(key==-1) pushQ(ptr_Tre); else pushQ(ptr_Trt->Point[key-1]); } else pushQ(Root); } } void Modifikaciya() { } int main() /*osnovaya programma*/ { char c; int n; clrscr(); do { /*vuvod na ekran menu*/ window(48,1,80,8); gotoxy(1,1);puts("1.Formirovanie dereva MISiS"); gotoxy(1,2);puts("2.Vkluchenie vershinu v derevo"); gotoxy(1,3);puts("3.Ydalenie vershinu iz dereva"); gotoxy(1,4);puts("4.Modifikaciya ocenok stydenta"); gotoxy(1,5);puts("5.Pechat' dereva"); gotoxy(1,6);puts("6.Vuhod"); c = getch(); /*ojidanie najatiya klavishi*/ window(1,1,47,25); clrscr(); switch(c) { /*vubor punkta menu*/ case '1': { /*formirovanie dereva*/ printf("Vvedite kolichestvo vershin \n"); scanf("%d",n); TreeForm(n); break; } case '2': { /*vkluchenie vershinu v derevo*/ printf(); scanf(); Insert_Tree(); break; } case '3': { /*ydalenie vershinu iz dereva*/ Del_Tree(); break; } case '4': { /*modifikaciya icenok stydenta*/ printf(); break; } case '5': { /*pechat' vsego dereva*/ printf("Struktura MISiS"); Print_Tree(); break; } case '6': { /*vuhod*/ break; } } } while(c>'0' && c<'6'); return c; }