zadanie nr 11 termin realizacji: 11 maj 2005

C++

lista, stos, kolejka (szablony) studia wieczorowe

Poniżej przedstawiono definicję szablonu klasy reprezentującej listę jednokierunkową. Dopisz definicje wszystkich zadeklarowanych w tym szablonie metod.

template <typename T>
class Lista
{
friend ostream & operator<< <T> (ostream &wy, const Lista<T> &lista);
public:
struct Blad
{
    const string opis;
    Blad (string op): opis(op) {}
    Blad (const Blad &bl): opis(bl.opis) {}
};
protected:
class WezelListy
{
    friend ostream & operator<< <T> (ostream &wy, const Lista<T> &lista);
protected:
    WezelListy *nastepny;
    T wartosc;
public:
    WezelListy (const T &wart, WezelListy *nast=0);
    WezelListy (const WezelListy &wezel);
    ~WezelListy ();
public:
    void wstaw (const T &wart, int poz);
    void usun (int poz);
    T & szukaj (int poz);
    WezelListy * odetnij ();
};
protected:
WezelListy *poczatek;
int liczba;
public:
Lista ();
Lista (const Lista &lista);
~Lista ();
Lista & operator= (const Lista &lista);
public:

    int dlugosc () const;
    void wstaw (T wart, int poz);
    void usun (int poz);
    void usunWszystko ();
    T szukaj (int poz) const;
    T & operator[] (int poz);
};

Następnie na podstawie szablonu listy napisz szablon dla stosu (dziedziczenie chronione z listy) i kolejki (dziedziczenie publiczne ze stosu).

Na koniec napisz program testujący twoje struktury danych na obiektach typu int i string.

Uniwersytet Wrocławski Paweł Rzechonek Instytut Informatyki ul. Przesmyckiego 20 PL-51-151 Wrocław