home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 March / Chip_2002-03_cd1.bin / chplus / cecko / CPP / VYPLN.ZIP / SEZNAM.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1980-01-04  |  1.2 KB  |  47 lines

  1. #ifndef __SEZNAM_CPP
  2. #define __SEZNAM_CPP
  3.  
  4. #include "seznam.h"
  5. Seznam::Seznam() { VytvorPrazdnySeznam(); }
  6. Seznam::~Seznam() { SmazSeznam(); }
  7. void Seznam::VytvorPrazdnySeznam() { prvni=0;posledni=0; }
  8. void (*VypisPrvku)(T t);
  9.  
  10. void Seznam::Pridej(T cislo) {
  11.  if (prvni==0) { //seznam prazdny
  12.   prvni=new prvek;posledni=prvni;prvni->d=cislo;prvni->dalsi=0;prvni->predchozi=0;
  13.  } else {
  14.   prvek *pom=new prvek;posledni->dalsi=pom;pom->d=cislo;pom->predchozi=posledni;pom->dalsi=0;posledni=pom;
  15.  }
  16. }
  17.  
  18. void Seznam::Vypis() {
  19.  prvek *pom=prvni; //vsude, kde se pracuje s tridou prvek, je nutne pouzivat parametr sablony
  20.  if (prvni==0) { cout << "prazdny" << endl; }
  21.  while (pom!=0) {
  22.   if (VypisPrvku!=0) {VypisPrvku(pom->d);} else {cout << "neni definovana funkce pro vypis prvku seznamu" << endl;}
  23.   pom=pom->dalsi;
  24.  }
  25.  cout << endl;
  26. }
  27. void Seznam::SmazSeznam() {
  28.  if (prvni!=0) {
  29.    prvek *pom=prvni;
  30.    while (pom!=0) { pom=prvni;prvni=prvni->dalsi;delete pom; }
  31.  }
  32.  prvni=0;posledni=0;
  33. }
  34.  
  35. int Seznam::Prazdny() {
  36.  if (prvni==0) return 1; else return 0;
  37. }
  38.  
  39. int Seznam::Jednoprvkovy() {
  40.  if (Prazdny()) return 0;
  41.  if (prvni==posledni) return 1; else return 0;
  42. }
  43.  
  44. prvek *Seznam::ZjistiPrvni() {return prvni;}
  45.  
  46. #endif
  47.