home *** CD-ROM | disk | FTP | other *** search
- #ifndef __SEZNAM_CPP
- #define __SEZNAM_CPP
-
- #include "seznam.h"
- Seznam::Seznam() { VytvorPrazdnySeznam(); }
- Seznam::~Seznam() { SmazSeznam(); }
- void Seznam::VytvorPrazdnySeznam() { prvni=0;posledni=0; }
- void (*VypisPrvku)(T t);
-
- void Seznam::Pridej(T cislo) {
- if (prvni==0) { //seznam prazdny
- prvni=new prvek;posledni=prvni;prvni->d=cislo;prvni->dalsi=0;prvni->predchozi=0;
- } else {
- prvek *pom=new prvek;posledni->dalsi=pom;pom->d=cislo;pom->predchozi=posledni;pom->dalsi=0;posledni=pom;
- }
- }
-
- void Seznam::Vypis() {
- prvek *pom=prvni; //vsude, kde se pracuje s tridou prvek, je nutne pouzivat parametr sablony
- if (prvni==0) { cout << "prazdny" << endl; }
- while (pom!=0) {
- if (VypisPrvku!=0) {VypisPrvku(pom->d);} else {cout << "neni definovana funkce pro vypis prvku seznamu" << endl;}
- pom=pom->dalsi;
- }
- cout << endl;
- }
- void Seznam::SmazSeznam() {
- if (prvni!=0) {
- prvek *pom=prvni;
- while (pom!=0) { pom=prvni;prvni=prvni->dalsi;delete pom; }
- }
- prvni=0;posledni=0;
- }
-
- int Seznam::Prazdny() {
- if (prvni==0) return 1; else return 0;
- }
-
- int Seznam::Jednoprvkovy() {
- if (Prazdny()) return 0;
- if (prvni==posledni) return 1; else return 0;
- }
-
- prvek *Seznam::ZjistiPrvni() {return prvni;}
-
- #endif
-