Hlavná stránka | Zoznam tried | Zoznam súborov | Zoznam členov tried

strom.h

00001 //---------------------------------------------------------------------------
00002 
00003 #ifndef stromH
00004 #define stromH
00005 
00006 #include "zoznam.h"
00007 #include "deklaracie.h"
00008 #include "ukladanie.h"
00009 //---------------------------------------------------------------------------
00010 
00015 class strom
00016 {
00020   int pocet_moznych_ciar;  //pocet vrcholov rovin, v ktorych je len prazdny zoznam
00021   
00022  private:
00026   zoznam *odkrojeny; //zoznam, za ktoreho bola odobrana cast pri krizeni
00027 
00031   int dlzky[100];
00032 
00036   bod utvary[100][30];
00037   
00041   int pompoc;    //pomocne pocitadlo pri vybere zoznamu na krizenie
00042 
00043   
00044   bod pombody[10]; //pole pomocnych bodov pri vytvarani rovnej roviny
00045   
00046  public:
00050   int pocet_zaznamov;      //pocet utvarov v strome, pocet ciar+pocet rovin
00051 
00055   int pocet_ciar;          //pocet ciar v strome
00056 
00060   int pocet_ploch;         //pocet rovin v strome
00061 
00065   zoznam *koren;
00066 
00070   bool aktualne;  //true ak su udaje v poliach dlzky a utvary aktualne
00071   
00072  public:
00077   strom();
00078 
00083   ~strom();
00084 
00085  private:
00092   zoznam* najdi_zoznam_na_krizenie(zoznam *zoz);
00093 
00099   void mutuj_zoznam(zoznam *zoz);
00100 
00107   element nahodny_element(int vn);
00108   
00113   posun nahodny_posun();
00114     
00120   void zduplikuj_zoznam(zoznam *zoz1, zoznam *zoz2);
00121 
00125   void vyrataj_body();
00126 
00136   void spracuj_zoznam(zoznam *zoz, bod bod1, bod bod2);
00137 
00147   void spracuj_plochu(element el, bod bod1, bod bod2);
00148 
00154   void zrus_zoznam(zoznam *zoz);
00155 
00162   vektor otocenie(vektor predch, vektor na_otocenie);
00163 
00171   bod nasledujuci_bod(bod bod1, bod bod2, posun dalsi);
00172     //vyrata nasledujudi bod.. bod1, bod2, nasledujuci bod
00173     //
00174  public:
00175 
00180   zoznam* zoznam_na_krizenie();
00181 
00186   void pridaj_po_krizeni(prvok *uk);
00187 
00191   void mutuj_strom();
00192 
00197   void zduplikuj_sa(strom *s);
00198 
00202   void napln_nahodne();
00203 
00208   bool is_empty();
00209 
00214   int* vrat_dlzky();
00215 
00220   bod* vrat_utvary();
00221 };
00222 
00228 float velkost_vektora(vektor v);
00229 #endif

Generované Thu May 6 10:44:22 2004 programom doxygen 1.3.6