//-------------------< MAIN >------------------- int main(void) { setlocale(LC_ALL, "");//polskie znaki wezel* drzewo = ONPnadrzewo("100 200 + 300 + 400 +"); printf("Wynik 100 200 + 300 + 400 + : %lf\nWersja tekstowa: ", ewaluacja(drzewo)); DrzewoNaTekst(drzewo); puts("\n"); zwolnij(drzewo); drzewo = ONPnadrzewo("25 13 4 / + 2 *"); printf("Wynik 25 13 4 / + 2 *: %lf\nWersja tekstowa: ", ewaluacja(drzewo)); DrzewoNaTekst(drzewo); puts("\n"); zwolnij(drzewo); drzewo = ONPnadrzewo("-5 25 13 4 / + * 2 *"); printf("Wynik -5 25 13 4 / + * 2 *: %lf\nWersja tekstowa: ", ewaluacja(drzewo)); DrzewoNaTekst(drzewo); puts("\n"); zwolnij(drzewo); drzewo = ONPnadrzewo("-2 -2 * -3 -4 - - "); printf("Wynik -2 -2 * -3 -4 - - : %lf\nWersja tekstowa: ", ewaluacja(drzewo)); DrzewoNaTekst(drzewo); puts("\n"); zwolnij(drzewo); drzewo = ONPnadrzewo("1 -10 / 10 - "); printf("Wynik 1 -10 / 10 - : %lf\nWersja tekstowa: ", ewaluacja(drzewo)); DrzewoNaTekst(drzewo); puts("\n"); zwolnij(drzewo); return 0; }
void zwolnij(wezel* w) { if (w->L != NULL) zwolnij(w->L); if (w->P != NULL) zwolnij(w->P); free(w); }
void aghMatrix<char>::setItems(int r, int c, ...) { if(tab) zwolnij(); else { rezerwuj(r, c); va_list wart; va_start(wart, c); for(int i=0; i<r; i++) for(int j=0; j<c; j++) { tab[i][j]=va_arg(wart, int); } va_end(wart); } }
aghMatrix<char*> const & aghMatrix<char*>::operator=(aghMatrix<char*> const & A) { if(&A==this) return *this; zwolnij(); rezerwuj(A.wier, A.kol); for(int i = 0; i < wier; i++) { for(int j = 0; j<kol; j++) { tab[i][j] = new char[strlen(A.tab[i][j]) + 1]; strcpy(tab[i][j], A.tab[i][j]); } } wier=A.wier; kol=A.kol; return *this; }
void aghMatrix<char*>::setItems(int r, int c, ...) { if(tab != NULL) { zwolnij(); } rezerwuj(r, c); va_list lista; va_start(lista, c); for(int i = 0; i < r; i++) { for(int j = 0; j < c; j++) { tab[i][j] = new char[strlen(va_arg(lista, char*)) + 1]; } } va_start(lista, c); for(int i = 0; i < r; i++) { for(int j = 0; j < c; j++) { strcpy(tab[i][j], va_arg(lista, char*)); } } va_end(lista); }
Parz::~Parz() { zwolnij(); }
void ui(void) { //pocz¹tek obs³ugi interfejsu i zdarzeñ if(firstrun==1) { strcpy(input, "pomoc"); tempnode=nowy(tempnode); firstrun=0; } else if(strcmp("^", input)==0) { ui_wroc(tempnode); scanf("%s", &input); } else if(strcmp("goto", input)==0) { ui_goto(tempnode); scanf("%s", &input); } else if(strcmp("wypisz", input)==0) { ui_wypisz(tempnode, 0); scanf("%s", &input); } else if(strcmp("goin", input)==0) { ui_goin(tempnode); scanf("%s", &input); } else if(strcmp("usun", input)==0) { usun(tempnode); scanf("%s", &input); } else if((strcmp("dodaj", input)==0)) { tempnode=nowy(tempnode); scanf("%s", &input); } else if(strcmp("nazwa", input)==0) { ui_nazwij(); } else if(strcmp("zapisz", input)==0) { zapisz(tempnode, 0); scanf("%s", &input); } else if(strcmp("wczytaj", input)==0) //nie uda³o siê wprowadziæ { printf("DEBUG:loading, not implemented"); scanf("%s", &input); } else if(strcmp("czytaj", input)==0) { if(tempnode!=0) printf("Aktualny wezel to: %s\n", tempnode->name); else printf("Nie mozna wyswietlic nazwy niestniejacego wezla\n"); scanf("%s", &input); } else if(strcmp("exit", input)==0) { while(tempnode->parent!=0||tempnode->prev!=0) //wraca na sam¹ górê drzewa ui_wroc(tempnode); zwolnij(tempnode); //zwalnia ca³e drzewo przed zamkniêciem free(tempnode); exit(0); //zamyka app } //koniec obs³ugi interfejsu i zdarzeñ //wyœwietlanie menu else if(strcmp("pomoc", input)==0) { printf("LISTA KOMEND:\n"); printf("^ - skocz do wezla wyzej\n"); //works printf("dodaj - dodaje nowy wezel\n"); //works printf("usun - usuwa aktualny wezel\n"); //works. deleting whole branches not allowed printf("nazwa <nazwa wezla> - zmienia nazwe aktualnego wezla\n"); //works printf("czytaj - wyswietla aktualna nazwe wezla\n"); //works printf("wypisz - wypisuje drzewo wezlow\n"); //works printf("goto <nazwa wezla> - przenosi do wezla w aktualnej kategorii\n"); //works printf("goin - wchodzi dalej w aktualny wezel\n"); //works printf("zapisz - zapisuje drzewo do pliku tekstowego\n"); //works printf("Wpisz exit zeby wyjsc\n"); //works but doesn't free memory :( printf("\n Wpisz komedne.\n"); scanf("%s", &input); } else { scanf("%s", &input); } }
int main() { int przelacznik,i,rozmiar,nevelement,zdjety,wartosc,el,random,r,il,wybrana; printf("TWORZENIE NOWEGO STOSU" ); przelacznik='1'; do { switch(przelacznik) { case '1': wsk *wskaznik; wskaznik =(wsk*)malloc(10*sizeof(struct stos)); inic (wskaznik); rozmiar=1; printf("podaj wartosc pierwszego elementu stosu"); scanf("%d",&el); push(wskaznik,el); break; case '2': if(rozmiar<10) { printf("podaj wartosc kolejnego elementu\n"); scanf("%d",&nevelement); push(wskaznik,nevelement); rozmiar++; } else {printf("stos jest juz pelen\n");} break; case '3':if(rozmiar==1) { printf("stos pusty\n"); break; } else { zdjety=pop(wskaznik); rozmiar--; printf("wartosc zdjetego elementu to %d\n",zdjety); } break; case '4': wypisz(wskaznik); break; case '5': zwolnij(wskaznik); rozmiar=0; break; } printf("co chcesz zrobic\n 1.stworz stos\n 2.dodaj kolejny element\n 3.usun element\n 4.wypisz stos\n 5.zwolnj stos\n 6. zakoncz dzialanie programu\n"); przelacznik=getch(); system("cls"); } while(przelacznik!='6'); system("PAUSE"); }