**Termin zajęć:** 12/13.04.2011
**Do przygotowania:**
- Znajomość zasad działania podstawowych struktur danych:
* stos
* kolejka FIFO
- Odwrotna Notacja Polska:
* co to jest notacja postfixowa, prefixowa i infixowa?
* algorytmy zamiany notacji infixowej na ONP przy pomocy stosu
* obliczanie wartości wyrażania w notacji ONP
- Proszę zaimplementować następujące **klasy** wraz z odpowiednimi metodami:
- Stos: implementujemy z wykorzystaniem tablicy, przechowujemy indeks elementu na szczycie stosu
#define MAX 10 // rozmiar stosu
class stack
{
private:
type arr[MAX]; // tablica z danymi
int top; // indeks elementu na wierzchu stosu
public:
stack(); // konstruktor
void push(type a); // połóż element na stosie
type pop(); // zdejmij element ze stosu
type peek(); // zwróć element ze szczytu stosu, nie zdejmując go
bool isEmpty();
bool isFull();
};
- kolejka FIFO: dodajemy elementy na koniec kolejki, pobieramy z jej początku. Kolejka powinna być implementowana tak, że po wyciągnięciu elementu z kolejki wszystkie pozostałe są przesuwane na początek, czyli usuwany jest zawsze pierwszy element kolejki.
#define MAX 5 // rozmiar kolejki
class queue
{
private:
type t[MAX];
int rear;
public:
queue();
type remove(); // usuwa i zwraca pierwszy element kolejki
void insert(type item); // wstawia element na koniec kolejki
type front(); // zwraca pierwszy element kolejki nie usuwając go
bool isEmpty();
bool isFull();
};
* Type jest zdefiniowany za pomocą:
''typedef int type;''