Example #1
0
//-------------------< 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;
}
Example #2
0
void zwolnij(wezel* w)
{
	if (w->L != NULL)
		zwolnij(w->L);
	if (w->P != NULL)
		zwolnij(w->P);

	free(w);
}
Example #3
0
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);
   }
}
Example #4
0
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;
}
Example #5
0
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);
}
Example #6
0
Parz::~Parz() 
{
   zwolnij();
}
Example #7
0
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);
	}
}
Example #8
0
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");
}