100 lines
2.2 KiB
C
100 lines
2.2 KiB
C
/*--- #includes ------------------------------------------------------*/
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#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();
|
|
}*/ |