00001 //--------------------------------------------------------------------------- 00002 00003 #ifndef zoznamH 00004 #define zoznamH 00005 //--------------------------------------------------------------------------- 00006 00007 class zoznam; 00008 00012 struct posun 00013 { 00017 float x,y,z; 00018 }; 00019 00023 struct element 00024 { 00028 posun pos; 00032 int plocha; //pocet dalsich vrcholov plochy, ak plocha=0, tak nie je plocha 00036 posun posuny_plochy[10]; //posuny urcujuce plochu 00040 zoznam *nasledovnici[10]; //ako pokracuje utvar v bodoch roviny 00041 }; 00042 00046 struct prvok //prvok zoznamu 00047 { 00051 element data; 00055 prvok *next; 00056 }; 00057 00061 class zoznam 00062 { 00063 private: 00067 prvok *zac; //ukazovatel na prvy prvok zoznamu 00068 00072 prvok *akt; //ukazovatel na aktualny prvok 00073 00077 prvok *kon; //ukazovatel na posledny prvok 00078 00082 int dlzka; 00083 00084 public: 00089 zoznam(); 00090 00095 ~zoznam(); 00096 00101 bool is_empty(); 00102 00107 void push(element data); 00108 00113 element pop(); 00114 00118 void reset(); 00119 00125 int length(); 00126 00131 bool is_end(); //ak je za zoznamom, tak true 00132 00137 element return_value(); 00138 00143 prvok* kus_zoznamu(); 00144 00149 void pridaj_na_koniec(prvok *ukaz); 00150 00155 element vrat_hodnotu_akt_prvku(); 00156 00161 void zmen_akt_prvok(element pos); 00162 00167 prvok* zaciatok(); 00168 00169 private: 00173 void refresh(); 00174 }; 00175 00176 #endif