#include #include #include "double_chained_functions.h" messdaten* insertFirst (messdaten* firstelem, messdaten* newelement) { if (firstelem != NULL) { newelement->next = firstelem; newelement->prev = firstelem->prev; firstelem->prev = newelement; } else { newelement->next = NULL; newelement->prev = newelement; } return (newelement); } messdaten* insertLast (messdaten* firstelem, messdaten* newelement) { if (firstelem != NULL) { newelement->prev = firstelem->prev; firstelem->prev = newelement; newelement->prev->next = newelement; newelement->next = NULL; } else { firstelem = insertFirst (firstelem, newelement); } return (firstelem); } messdaten* insertPos (messdaten* firstelem, messdaten* newelement, int pos) { int i = 0; messdaten* temp = firstelem; if (pos == 0) { firstelem = insertFirst (firstelem, newelement); } else { while (temp->next != NULL && i < (pos - 2)) { temp = temp->next; i++; } if (temp->next != NULL) { newelement->next = temp->next; temp->next = newelement; newelement->prev = temp->next->prev; temp->next->prev = newelement; } else { firstelem = insertLast (firstelem, newelement); fprintf (stderr,"llfunct:insertPos->Warning Position is not existing. Element is added to the end of the list!!\n"); } } return (firstelem); } messdaten* deleteFirst (messdaten* firstelem) { messdaten* n = firstelem; firstelem = n->next; firstelem->prev = n->prev; free (n); return (firstelem); } messdaten* deleteLast (messdaten* firstelem) { messdaten* temp = firstelem->prev; firstelem->prev = firstelem->prev->prev; free ((firstelem->prev->next)); firstelem->prev->next = NULL; return (firstelem); } messdaten* deletePos (messdaten* firstelem, int pos) { int i = 0; messdaten* temp = firstelem; messdaten* tempsec; while (i < (pos - 2)) { temp = temp->next; i++; } tempsec = temp->next->next; tempsec->prev = temp; free (temp->next); temp->next = tempsec; return (firstelem); } messdaten* deleteAll (messdaten* firstelem) { messdaten* temp; while (firstelem->next != NULL) { temp = firstelem; firstelem = temp->next; free (temp); } return (firstelem); }