36#ifndef LINKEDLIST_HEADER
37#define LINKEDLIST_HEADER
110 Head=Tail=Current=
NULL;
119 Head=Tail=Current=
NULL;
137 for (
int i=0; i<other.
length(); i++)
160 Head=Tail=Current=
NULL;
183 *newnodeptr=&(item->
Node);
185 if ((pos==0)||(pos==Entries)) {
209 item->
Prev=Current->Prev;
211 item->
Prev->Next=item;
217 if (pos==CurIndex+1) {
218 item->
Next=Current->Next;
221 item->
Next->Prev=item;
230 for (
int i=1; i<pos; i++) {
237 item->
Prev->Next=item;
250 return(
add(node,0,newnodeptr));
258 return(
add(node,length(),newnodeptr));
278 if ((pos==0)||(pos==Entries-1)) {
288 if (pos==Entries-1) {
301 assert(Current==
NULL);
302 assert(CurIndex==-1);
324 if (pos==CurIndex+1) {
339 for (
int i=1; i<pos; i++) {
364 return(remove(temp_node,pos));
372 return(remove(node,0));
380 return(remove(node,Entries-1));
389 bool retval=getPointer(&objptr,pos);
390 if (retval && objptr)
400 if ((node==0)||(Entries==0))
419 }
else if (pos==Entries-1) {
427 *node=&(Current->Node);
429 }
else if (pos==CurIndex+1) {
430 *node=&(Current->Next->Node);
432 Current=Current->Next;
434 }
else if (pos==CurIndex-1) {
435 *node=&(Current->Prev->Node);
437 Current=Current->Prev;
443 for (
int i=1; i<pos; i++) {
467 return(get(node,Entries-1));
476 fprintf(out,
"--------------------\n");
477 fprintf(out,
"Entries = %d\n",length());
478 fprintf(out,
"H = %8p C = %8p (%d) T = %8p\n",Head,Current,CurIndex,Tail);
482 fprintf(out,
" %8p<-((%8p))->%8p \n",temp->
Prev,temp,temp->
Next);
486 fprintf(out,
"--------------------\n");
void add(float *sum, float *addend)
bit8 get(OUT T &node, sint32 pos)
bit8 remove(OUT T &node, sint32 pos)
LinkedList(LinkedList< T > &other)
bit8 getPointer(OUT T **node, sint32 pos)
bit8 addHead(IN T &node, OUT T **newnodeptr=NULL)
bit8 getHead(OUT T &node)
LinkedList< T > & operator=(LinkedList< T > &other)
bit8 getTail(OUT T &node)
bit8 removeHead(OUT T &node)
bit8 addTail(IN T &node, OUT T **newnodeptr=NULL)
bit8 add(IN T &node, sint32 pos, OUT T **newnodeptr=NULL)
bit8 removeTail(OUT T &node)