/* * unboundedStack.h - nicht-begrenzter Stack * * Blatt 2, Aufgabe 1, Grundlagen der Informatik 2 fuer E-Techniker * SoSe 2002, (c) Jan Bredereke * * $Id: unboundedStack.h,v 1.2 2002/05/29 13:39:39 brederek Exp $ */ /* Ein Datensatz auf dem Stack. */ struct stackItem { /* Typ des Artikels, Beschreibung als Text. */ char artikeltyp[100]; /* firmeninterne Kennnummer des Artikels. */ int artikelId; /* Volumen des Artikels in Litern. */ int artikelvolumen; }; /* Ein Stack. */ struct stack { struct stackList* top; /* das oberste Element */ }; /* Eine Handle auf einen Stack. */ typedef struct stack *stackH; /* Die Funktionen. */ /* * Erzeugt einen Stack. * * @return Der neue, leere Stack. */ stackH createStack(void); /* * Legt das uebergebene Element oben auf den Stack. * * @param obj Das auf den Stack zu legende Element. */ void push(stackH s, struct stackItem si); /* * Nimmt das oberste Element vom Stack und gibt es zurueck. * * @return Das oberste Element. */ struct stackItem pop(stackH s); /* * Gibt das oberste Element vom Stack zurueck, ohne den Stack zu * veraendern. * * @return Das oberste Element. */ struct stackItem peek(stackH s); /** * Sagt, ob der Stack leer ist. * * @return 1, falls Stack leer, 0 sonst. */ int isEmpty(stackH s);