1

add vorgabe06

This commit is contained in:
2022-06-02 13:01:43 +02:00
parent 7b7b375c8c
commit 32b1f2391f
15 changed files with 525 additions and 0 deletions

44
c_os/lib/Queue.h Executable file
View File

@ -0,0 +1,44 @@
/*****************************************************************************
* *
* Q U E U E *
* *
*---------------------------------------------------------------------------*
* Beschreibung: Implementierung einer einfach verketteten Liste von *
* Chain Objekten. Die Implementierung ist etwas trickreich *
* 'tail' verweist naemlich nicht, wie oft ueblich, auf das *
* letzte Element der Liste, sondern auf den 'next' Zeiger *
* des letzten Elements, bzw., solange die Liste noch leer *
* ist, auf den 'head' Zeiger der Liste. Dadurch muss beim *
* Anfuegen eines Elements an die Liste nicht ueberprueft *
* werden, ob bereits Elemente in ihr enthalten sind. Beim *
* Entfernen von Elementen kann auf die Fallunterscheidung *
* allerdings nicht verzichtet werden. *
* *
* Autor: Olaf Spinczyk, TU Dortmund *
*****************************************************************************/
#ifndef __Queue_include__
#define __Queue_include__
#include "lib/Chain.h"
class Queue {
private:
Queue(const Queue& copy); // Verhindere Kopieren
protected:
Chain* head;
Chain** tail;
public:
Queue() {
head = 0;
tail = &head;
}
void enqueue(Chain* item);
Chain* dequeue();
void remove(Chain*);
};
#endif