Für Vorlesungen, bitte die Webseite verwenden. https://flavigny.de/lecture
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

82 wiersze
1.3KB

  1. // private Hilfsfunktionen
  2. ListFloatArray::FloatListElem* ListFloatArray::insert (int i, float v)
  3. {
  4. FloatListElem* q = new FloatListElem;
  5. q->index = i;
  6. q->value = v;
  7. q->next = p;
  8. p = q;
  9. n = n+1;
  10. return q;
  11. }
  12. ListFloatArray::FloatListElem* ListFloatArray::find (int i)
  13. {
  14. for (FloatListElem* q=p; q!=0; q = q->next)
  15. if (q->index==i)
  16. return q;
  17. return 0;
  18. }
  19. // Konstruktoren
  20. ListFloatArray::ListFloatArray ()
  21. {
  22. n = 0; // alles leer
  23. p = 0;
  24. }
  25. // Destruktor
  26. ListFloatArray::~ListFloatArray ()
  27. {
  28. FloatListElem* q;
  29. while (p!=0)
  30. {
  31. q = p; // q ist erstes
  32. p = q->next; // entferne q aus Liste
  33. delete q;
  34. }
  35. }
  36. float& ListFloatArray::operator[] (int i)
  37. {
  38. FloatListElem* r=find(i);
  39. if (r==0)
  40. r=insert(i,0.0); // erzeuge index, r nicht mehr 0
  41. return r->value;
  42. }
  43. int ListFloatArray::numIndices ()
  44. {
  45. return n;
  46. }
  47. int ListFloatArray::minIndex ()
  48. {
  49. if (p==0) return 0;
  50. int min=p->index;
  51. for (FloatListElem* q=p->next; q!=0; q = q->next)
  52. if (q->index<min) min=q->index;
  53. return min;
  54. }
  55. int ListFloatArray::maxIndex ()
  56. {
  57. if (p==0) return 0;
  58. int max=p->index;
  59. for (FloatListElem* q=p->next; q!=0; q = q->next)
  60. if (q->index>max) max=q->index;
  61. return max;
  62. }
  63. bool ListFloatArray::isMember (int i)
  64. {
  65. FloatListElem* r=find(i);
  66. if (r!=0)
  67. return true;
  68. else
  69. return false;
  70. }