/*--- #includes ------------------------------------------------------*/ #include #include #include "queue.h" /*--- #defines -------------------------------------------------------*/ /*--- Lokale Datentypen (typedef) ------------------------------------*/ Jose* head = NULL; Jose* tail = NULL; /*--- Modulglobale static Variablen ----------------------------------*/ /*--- Prototypen lokaler Funktionen ----------------------------------*/ /*--- Funktionsdefinitionen ------------------------------------------*/ /*--------------------------------------------------------------------*\ * Einfuegen in Liste * Parameter: * zahl fügt die übergebene Zahl 'zahl' am Ende der Liste ein * Return Wert: * TRUE wenn noch genug Speicherplatz vorhanden * FALSE wenn kein Speicherplatz mehr allokiert werden konnte *--------------------------------------------------------------------*/ Bool put(int zahl) { Jose* j = (Jose*)malloc(sizeof(Jose)); if(!j){ printf("Es kann kein Speicher mehr allokiert werden!"); return FALSE; } j->value = zahl; j->next = NULL; j->prev = tail; if(tail) tail->next = j; else head = j; tail = j; return TRUE; } /*--------------------------------------------------------------------*\ * Auslesen aus Liste * Parameter: * keine * Return Wert: * Zahl am Anfang der Liste oder aber QLEER, wenn Liste leer ist. *--------------------------------------------------------------------*/ int get(void) { int valueHead; Jose* tmp; if(head == NULL) return QLEER; tmp = head; valueHead = tmp->value; head = head->next; if (head == NULL) { tail = NULL; } else { head->prev = NULL; } free(tmp); return valueHead; } /*--------------------------------------------------------------------*\ * Pruefen der Liste * Parameter: * keine * Return Wert: * liefert TRUE, wenn Queue leer ist, sonst FALSE *--------------------------------------------------------------------*/ Bool isEmpty(void) { if(head == NULL) return TRUE; else return FALSE; } /*int main(){ put(69); put(70); put(80); get(); get(); get(); get(); }*/