Array.cpp 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. #include "Array.h"
  2. using namespace Framework;
  3. // Inhalt der IntArray Klasse aus Array.h
  4. // Konstruktor
  5. IntArray::IntArray()
  6. {
  7. This = 0;
  8. next = 0;
  9. }
  10. // Destruktor
  11. IntArray::~IntArray()
  12. {
  13. if( next )
  14. delete next;
  15. }
  16. // nicht constant
  17. void IntArray::addInt( int i, int index, int null ) // fügt i bei endex ein
  18. {
  19. if( index == null )
  20. {
  21. IntArray *tmp = next;
  22. next = new IntArray();
  23. next->setNext( tmp );
  24. next->setInt( This, 0, 0 );
  25. This = i;
  26. return;
  27. }
  28. if( !next )
  29. next = new IntArray();
  30. next->addInt( i, index, null + 1 );
  31. }
  32. void IntArray::addInt( int i ) // fügt i hinzu
  33. {
  34. if( !next )
  35. {
  36. next = new IntArray();
  37. next->setInt( i, 0, 0 );
  38. return;
  39. }
  40. next->addInt( i );
  41. }
  42. void IntArray::setInt( int i, int index, int null ) // setzt das index - te int zu i
  43. {
  44. if( index == null )
  45. {
  46. This = i;
  47. return;
  48. }
  49. if( !next )
  50. next = new IntArray();
  51. next->setInt( i, index, null + 1 );
  52. }
  53. void IntArray::löscheInt( int index, int null ) // löscht das index - te int
  54. {
  55. if( index == null )
  56. {
  57. This = 0;
  58. if( next )
  59. {
  60. This = next->zThis();
  61. IntArray *tmp = next->zNext();
  62. next->setNext( 0 );
  63. delete next;
  64. next = tmp;
  65. }
  66. return;
  67. }
  68. if( !next )
  69. next = new IntArray();
  70. next->löscheInt( index, null + 1 );
  71. }
  72. void IntArray::tauschInt( int vindex, int nindex ) // löscht das index - te int
  73. {
  74. int tmp = getInt( nindex, 0 );
  75. setInt( getInt( vindex, 0 ), nindex, 0 );
  76. setInt( tmp, vindex, 0 );
  77. }
  78. void IntArray::setNext( IntArray *n ) // setzt den next Zeiger auf n
  79. {
  80. next = n;
  81. }
  82. int IntArray::getInt( int index, int null ) // gibt das index - te int zurück
  83. {
  84. if( index == null )
  85. return This;
  86. if( !next )
  87. next = new IntArray();
  88. return next->getInt( index, null + 1 );
  89. }
  90. void IntArray::deleteAll() // gibt den Speicher frei
  91. {
  92. This = 0;
  93. if( next )
  94. next->deleteAll();
  95. delete next;
  96. next = 0;
  97. }
  98. IntArray *IntArray::release() // gibt den Speicher frei
  99. {
  100. This = 0;
  101. if( next )
  102. next = next->release();
  103. delete this;
  104. return 0;
  105. }
  106. // constant
  107. int IntArray::zThis() const // gibt This zurück
  108. {
  109. return This;
  110. }
  111. IntArray *IntArray::zNext() const // gibt den next Zeiger zurück
  112. {
  113. return next;
  114. }
  115. // Inhalt der Int64Array Klasse aus Array.h
  116. // Konstruktor
  117. Int64Array::Int64Array()
  118. {
  119. This = 0;
  120. next = 0;
  121. }
  122. // Destruktor
  123. Int64Array::~Int64Array()
  124. {
  125. if( next )
  126. delete next;
  127. }
  128. // nicht constant
  129. void Int64Array::addInt( __int64 i, int index, int null ) // fügt i bei endex ein
  130. {
  131. if( index == null )
  132. {
  133. Int64Array *tmp = next;
  134. next = new Int64Array();
  135. next->setNext( tmp );
  136. next->setInt( This, 0, 0 );
  137. This = i;
  138. return;
  139. }
  140. if( !next )
  141. next = new Int64Array();
  142. next->addInt( i, index, null + 1 );
  143. }
  144. void Int64Array::setInt( __int64 i, int index, int null ) // setzt das index - te int zu i
  145. {
  146. if( index == null )
  147. {
  148. This = i;
  149. return;
  150. }
  151. if( !next )
  152. next = new Int64Array();
  153. next->setInt( i, index, null + 1 );
  154. }
  155. void Int64Array::löscheInt( int index, int null ) // löscht das index - te int
  156. {
  157. if( index == null )
  158. {
  159. This = 0;
  160. if( next )
  161. {
  162. This = next->zThis();
  163. Int64Array *tmp = next->zNext();
  164. next->setNext( 0 );
  165. delete next;
  166. next = tmp;
  167. }
  168. return;
  169. }
  170. if( !next )
  171. next = new Int64Array();
  172. next->löscheInt( index, null + 1 );
  173. }
  174. void Int64Array::tauschInt( int vindex, int nindex ) // löscht das index - te int
  175. {
  176. __int64 tmp = getInt( nindex, 0 );
  177. setInt( getInt( vindex, 0 ), nindex, 0 );
  178. setInt( tmp, vindex, 0 );
  179. }
  180. void Int64Array::setNext( Int64Array *n ) // setzt den next Zeiger auf n
  181. {
  182. next = n;
  183. }
  184. __int64 Int64Array::getInt( int index, int null ) // gibt das index - te int zurück
  185. {
  186. if( index == null )
  187. return This;
  188. if( !next )
  189. next = new Int64Array();
  190. return next->getInt( index, null + 1 );
  191. }
  192. void Int64Array::deleteAll() // gibt den Speicher frei
  193. {
  194. This = 0;
  195. if( next )
  196. next->deleteAll();
  197. delete next;
  198. next = 0;
  199. }
  200. Int64Array *Int64Array::release() // gibt den Speicher frei
  201. {
  202. if( This )
  203. This = 0;
  204. if( next )
  205. next = next->release();
  206. delete this;
  207. return 0;
  208. }
  209. // constant
  210. __int64 Int64Array::zThis() const // gibt This zurück
  211. {
  212. return This;
  213. }
  214. Int64Array *Int64Array::zNext() const // gibt den next Zeiger zurück
  215. {
  216. return next;
  217. }
  218. // Inhalt der DoubleArray Klasse aus Array.h
  219. // Konstruktor
  220. DoubleArray::DoubleArray()
  221. {
  222. This = 0;
  223. next = 0;
  224. }
  225. // Destruktor
  226. DoubleArray::~DoubleArray()
  227. {
  228. if( next )
  229. delete next;
  230. }
  231. // nicht constant
  232. void DoubleArray::addDouble( double i, int index, int null ) // fügt i bei endex ein
  233. {
  234. if( index == null )
  235. {
  236. DoubleArray *tmp = next;
  237. next = new DoubleArray();
  238. next->setNext( tmp );
  239. next->setDouble( This, 0, 0 );
  240. This = i;
  241. return;
  242. }
  243. if( !next )
  244. next = new DoubleArray();
  245. next->addDouble( i, index, null + 1 );
  246. }
  247. void DoubleArray::setDouble( double i, int index, int null ) // setzt das index - te int zu i
  248. {
  249. if( index == null )
  250. {
  251. This = i;
  252. return;
  253. }
  254. if( !next )
  255. next = new DoubleArray();
  256. next->setDouble( i, index, null + 1 );
  257. }
  258. void DoubleArray::löscheDouble( int index, int null ) // löscht das index - te int
  259. {
  260. if( index == null )
  261. {
  262. This = 0;
  263. if( next )
  264. {
  265. This = next->zThis();
  266. DoubleArray *tmp = next->zNext();
  267. next->setNext( 0 );
  268. delete next;
  269. next = tmp;
  270. }
  271. return;
  272. }
  273. if( !next )
  274. next = new DoubleArray();
  275. next->löscheDouble( index, null + 1 );
  276. }
  277. void DoubleArray::tauschDouble( int vindex, int nindex ) // löscht das index - te int
  278. {
  279. double tmp = getDouble( nindex, 0 );
  280. setDouble( getDouble( vindex, 0 ), nindex, 0 );
  281. setDouble( tmp, vindex, 0 );
  282. }
  283. void DoubleArray::setNext( DoubleArray *n ) // setzt den next Zeiger auf n
  284. {
  285. next = n;
  286. }
  287. double DoubleArray::getDouble( int index, int null ) // gibt das index - te int zurück
  288. {
  289. if( index == null )
  290. return This;
  291. if( !next )
  292. next = new DoubleArray();
  293. return next->getDouble( index, null + 1 );
  294. }
  295. void DoubleArray::deleteAll() // gibt den Speicher frei
  296. {
  297. This = 0;
  298. if( next )
  299. next->deleteAll();
  300. delete next;
  301. next = 0;
  302. }
  303. DoubleArray *DoubleArray::release() // gibt den Speicher frei
  304. {
  305. if( This )
  306. This = 0;
  307. if( next )
  308. next = next->release();
  309. delete this;
  310. return 0;
  311. }
  312. // constant
  313. double DoubleArray::zThis() const // gibt This zurück
  314. {
  315. return This;
  316. }
  317. DoubleArray *DoubleArray::zNext() const // gibt den next Zeiger zurück
  318. {
  319. return next;
  320. }