// private Hilfsfunktionen ListFloatArray::FloatListElem* ListFloatArray::insert (int i, float v) { FloatListElem* q = new FloatListElem; q->index = i; q->value = v; q->next = p; p = q; n = n+1; return q; } ListFloatArray::FloatListElem* ListFloatArray::find (int i) { for (FloatListElem* q=p; q!=0; q = q->next) if (q->index==i) return q; return 0; } // Konstruktoren ListFloatArray::ListFloatArray () { n = 0; // alles leer p = 0; } // Destruktor ListFloatArray::~ListFloatArray () { FloatListElem* q; while (p!=0) { q = p; // q ist erstes p = q->next; // entferne q aus Liste delete q; } } float& ListFloatArray::operator[] (int i) { FloatListElem* r=find(i); if (r==0) r=insert(i,0.0); // erzeuge index, r nicht mehr 0 return r->value; } int ListFloatArray::numIndices () { return n; } int ListFloatArray::minIndex () { if (p==0) return 0; int min=p->index; for (FloatListElem* q=p->next; q!=0; q = q->next) if (q->indexindex; return min; } int ListFloatArray::maxIndex () { if (p==0) return 0; int max=p->index; for (FloatListElem* q=p->next; q!=0; q = q->next) if (q->index>max) max=q->index; return max; } bool ListFloatArray::isMember (int i) { FloatListElem* r=find(i); if (r!=0) return true; else return false; }