63 lines
2.3 KiB
C
63 lines
2.3 KiB
C
/**********************************************************************\
|
|
* Kurzbeschreibung:
|
|
* queue.h - realisiert eine Queue (Warteschlange) als verkettete Liste
|
|
*
|
|
* Datum: Autor:
|
|
* 30.9.2015 Prof. Dr. Helmut Herold
|
|
*
|
|
\**********************************************************************/
|
|
#ifndef QUEUE_H
|
|
#define QUEUE_H
|
|
|
|
/*--- #includes ------------------------------------------------------*/
|
|
#include <limits.h> // Für INT_MIN
|
|
|
|
/*--- #defines -------------------------------------------------------*/
|
|
#define TRUE 1
|
|
#define FALSE 0
|
|
#define QLEER INT_MIN // Konstante, um "Queue ist leer" zu kennzeichnen
|
|
|
|
/*--- Datentypen (typedef) -------------------------------------------*/
|
|
typedef int Bool; // Bool ist einfach nur ein int
|
|
|
|
// Struktur für ein Queue-Element
|
|
typedef struct Queue_Element {
|
|
int wert; // Der gespeicherte Wert (die Zahl)
|
|
struct Queue_Element* Element_next; // Zeiger auf das nächste Element
|
|
struct Queue_Element* Element_prev; // Zeiger auf das vorherige Element
|
|
} Queue_Elem;
|
|
|
|
/*--- Prototypen globaler Funktionen ---------------------------------*/
|
|
|
|
/*--------------------------------------------------------------------*\
|
|
* 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
|
|
* Hinweis:
|
|
* - dynamische Verwaltung von Speicher muss mit malloc() und free()
|
|
* durchgeführt werden; dynamische Arrays sind nicht erlaubt !!!
|
|
*--------------------------------------------------------------------*/
|
|
Bool put(int zahl);
|
|
|
|
/*--------------------------------------------------------------------*\
|
|
* Auslesen aus Liste
|
|
* Parameter:
|
|
* keine
|
|
* Return Wert:
|
|
* Zahl am Anfang der Liste oder aber QLEER, wenn Liste leer ist.
|
|
*--------------------------------------------------------------------*/
|
|
int get(void);
|
|
|
|
/*--------------------------------------------------------------------*\
|
|
* Pruefen der Liste
|
|
* Parameter:
|
|
* keine
|
|
* Return Wert:
|
|
* liefert TRUE, wenn Queue leer ist, sonst FALSE
|
|
*--------------------------------------------------------------------*/
|
|
Bool isEmpty(void);
|
|
|
|
#endif /*QUEUE_H*/ |