25 { prev_elem = next_elem =
NULp; }
27 printf(
"<%8p (%8p) %8p> = %lx", prev_elem,
this, next_elem, info);
36 unsigned long cardinal;
40 if (!((current_elem == 0 && first_elem == 0 && last_elem == 0) ||
41 (current_elem != 0 && first_elem != 0 && last_elem != 0))) {
42 printf(
"List is inconsistent (1)\n");
45 if (first_elem != 0) {
48 int current_inside_flag = current_elem == pre;
49 int marked_inside_flag = marked_elem == pre;
53 if (current_elem == akt)
54 current_inside_flag = 1;
55 if (marked_elem == akt)
56 marked_inside_flag = 1;
58 printf(
"List is inconsistent (2)\n");
64 if (pre != last_elem) {
65 printf(
"List is inconsistent (3)\n");
68 if (current_inside_flag == 0) {
69 printf(
"List is inconsistent (4)\n");
72 if (marked_elem && marked_inside_flag == 0) {
73 printf(
"List is inconsistent (5)\n");
81 first_elem = last_elem = current_elem = marked_elem =
NULp;
91 current_elem = first_elem;
101 printf(
"List (%ld):\n", cardinal);
102 printf(
"first = %p last = %p current = %p marked = %p\n",
103 first_elem, last_elem, current_elem, marked_elem);
104 for (akt = first_elem, l = 0; akt != 0 && akt != last_elem;
118 current_elem = first_elem;
122 first_elem = last_elem = current_elem = marked_elem =
NULp;
147 marked_elem = current_elem;
151 ali_fatal_error(
"No marked element in list",
"ALI_TLIST<T>::marked()");
152 current_elem = marked_elem;
158 if (current_elem != 0)
159 (current_elem->
info) = new_elem;
166 return !current_elem;
169 return current_elem && current_elem->
next_elem;
172 return current_elem && current_elem->
prev_elem;
175 return current_elem->
info;
178 current_elem = first_elem;
179 return current_elem->
info;
182 current_elem = last_elem;
183 return current_elem->
info;
188 return current_elem->
info;
193 return current_elem->
info;
208 last_elem = first_elem = current_elem = elem;
217 for (akt_elem = a.first_elem; akt_elem != 0;
220 if (last_elem != 0) {
226 last_elem = first_elem = current_elem = elem;
236 if (first_elem != 0) {
242 last_elem = first_elem = current_elem = elem;
251 for (akt_elem = a.last_elem; akt_elem != 0;
254 if (first_elem != 0) {
260 last_elem = first_elem = current_elem = elem;
270 if (current_elem != 0) {
271 if (current_elem->next_elem != 0) {
272 elem->
next_elem = current_elem->next_elem;
273 current_elem->next_elem->prev_elem = elem;
277 if (current_elem == last_elem)
281 last_elem = first_elem = current_elem = elem;
290 for (akt_elem = a.first_elem; akt_elem != 0;
293 if (current_elem != 0) {
294 if (current_elem->next_elem != 0) {
295 elem->
next_elem = current_elem->next_elem;
296 current_elem->next_elem->prev_elem = elem;
300 if (current_elem == last_elem)
304 last_elem = first_elem = current_elem = elem;
315 if (current_elem->prev_elem) {
316 elem->
prev_elem = current_elem->prev_elem;
317 current_elem->prev_elem->next_elem = elem;
321 if (current_elem == first_elem)
325 last_elem = first_elem = current_elem = elem;
334 for (akt_elem = a.last_elem; akt_elem != 0;
337 if (current_elem != 0) {
338 if (current_elem->prev_elem != 0) {
339 elem->
prev_elem = current_elem->prev_elem;
340 current_elem->prev_elem->next_elem = elem;
344 if (current_elem == first_elem)
348 last_elem = first_elem = current_elem = elem;
357 if (current_elem == marked_elem) {
362 if (current_elem->prev_elem && current_elem->next_elem) {
364 current_elem->
prev_elem->next_elem = current_elem->next_elem;
365 current_elem->next_elem->prev_elem = current_elem->prev_elem;
366 current_elem = current_elem->next_elem;
371 if (current_elem->prev_elem) {
374 current_elem = current_elem->prev_elem;
375 last_elem = current_elem;
380 if (current_elem->next_elem) {
383 current_elem = current_elem->next_elem;
384 first_elem = current_elem;
391 first_elem = last_elem = current_elem =
NULp;
400 #error ali_tlist.hxx included twice
401 #endif // ALI_TLIST_HXX
ALI_TLIST_ELEM< T > * prev_elem
ALI_TLIST_ELEM< T > * next_elem
void overwrite_element(T new_elem)
void ali_fatal_error(const char *message, const char *func)
void ali_warning(const char *message)