Skip to content

Instantly share code, notes, and snippets.

@dafr32
Created January 6, 2016 20:08
Show Gist options
  • Save dafr32/02f1f7d3696b1611b374 to your computer and use it in GitHub Desktop.
Save dafr32/02f1f7d3696b1611b374 to your computer and use it in GitHub Desktop.
#include <iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;
/*
Odwrotna notacja polska ONP
Koncepcja:
1. Utworzenie struktury elementu listy
2. Utworzyć wskaźnik na pierwszy element listy
3. Utworzyc funkcję Push()
4. Utworzyc funkcję Pop()
5. Pobrać ciąg ONP z klawiatury
6. Obliczyć wartość działania
*/
//1. Utworzenie struktury elementu listy
struct T_element{
int liczba;
T_element *nastepny;
};
//2. Utworzyć wskaźnik na element
T_element *pierwszy = NULL;
//połóż na stos
void Pop(int parametr1)
{
T_element *tmp = new T_element; // utworzenie nowego dynamicznego wskaźnika
// na nieistniejącą zmienną
// 2. przypisać mu wartości parametru
tmp->liczba = parametr1;
// 3. Umieszczenie elementu na początku listy
tmp->nastepny = pierwszy;
pierwszy = tmp;
}
//zdejmij ze stosu
int Push()
{
T_element *tmp = pierwszy;
if (pierwszy==NULL) return 0;
pierwszy = pierwszy->nastepny;
// jeśli poszukiwane imie jest w pierwszym elemencie
return tmp->liczba;
}
int main()
{
char opcja;
int liczba;
do {
cout<<" MENU \n"
<<"1. Dodaj element Pop()\n"
<<"2. Usun element Push()\n"
<<"4. Zakoncz program \n"
<<"------------------------------ \n"
<<"Wynierz opcje (1-4):";
cin>>opcja;
switch(opcja-48) //kod znaku - kod znaku '0'
{
case 1: cout<<"Podaj wartość:";cin>>liczba;
Pop(liczba);
break;
case 2: cout<<"element stosu:"<<Push()<<endl;;
break;
case 4: return 0;
}
// system("clear");
}while(true);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment