Schreiben Sie ein Programm, mit dem Zeichen auf einen Stack der maximalen Länge 5 geschrieben bzw. gelöscht werden
können! Das Ende des Stacks soll mit einem Nullbyte markiert werden. Das Programm soll auf folgende Kommandos
reagieren:
? list: Der Stackinhalt soll als String ausgegeben werden.
? pop: Das letzte Zeichen soll ausgegeben und gelöscht werden.
? push <Zeichen>: Ein Zeichen soll angefügt werden.
? exit: Das Programm soll verlassen werden.
Bei anderen Eingaben soll eine Fehlermeldung ausgegeben werden.
Code:
#include <stdio.h>
#include <stdlib.h>
#define MAXSTACK 5
#define LEERESSTACK -1
int top = LEERESSTACK;
char zeichen[MAXSTACK];
void push(char c) {
zeichen[++top] = c;
}
char pop() {
return zeichen[top--];
}
int voll() {
return top+1 == MAXSTACK;
}
int leer() {
return top == LEERESSTACK;
}
void push( char );
char pop();
int leer();
int voll();
int main(void)
{
/* char zeichen[5];*/
char ch;
printf("Geben sie maximal 5 zeichen ein:\n");
while ((ch = getchar()) != '\n')
{
if (!voll()) push(ch);
}
//wird rückwärts ausgegeben bis Stack leer ist
printf("Ausgabe Lautet:\n");
while (!leer())
{
printf("%c", pop());
}
return 0;
}
Ich habs versucht Aufgabentreu zu machen, aber schaff das nicht. Weiß einer wie ich List, Exit und das mit dem Nullbyte machen kann?
Wäre sehr dankbar dafür. =)