Hallo,
mein Programm soll unter C beliebig viele Punkte einlesen und in einer verketteten Liste speichern. Die Punkte sollen dann in Umgekehrter Reihenfolge der Eingabe auf dem Bildschirm ausgegeben werden. Der Benutzer kann nach jeder Eingabe entscheiden, ob er noch einen Punkt eingeben möchte (Eingabe ’p’), oder ob die gespeicherten Punkte ausgegeben werden sollen (Eingabe ’q’). Während der Ausgabe soll der Stack Punkt für Punkt geleert werden, so dass er zuletzt leer ist. Die Liste soll ausschließlich durch die Stack-Funktionen push() und pop() verwaltet werden. Die Punkte sollen in einer Schleife eingelesen und auf dem Stack abgelegt werden.
Folgende Funktionen sollen realisiert werden:
Void push(POINT pushPoint);
POINT pop();
tnt isEmpty //gibt wahr zurück wenn Stack leer
void printStackElement (Point aPoint); //gibt einen Punkt aus
Probleme bereitet mir push und pop. Weder in meinen Büchern noch im Internet habe ich was Brauchbares gefunden. Das Gerüst von main() hätte ich soweit:
#include
#include
struct punkt
{
int *x;
int *y;
int *z;
};
int main(void)
{
char buchstabe[1];
struct punkt read1;
read1.x = NULL;
read1.y = NULL;
read1.z = NULL;
buchstabe[0] = ‚s‘;
while(buchstabe[0] != ‚\0‘)
{
printf("‚p‘ fuer Punkt eingeben, ‚q‘ fuer Ausgabe: „);
scanf(“ %c", buchstabe);
if(buchstabe[0] == ‚p‘ || buchstabe[0] == ‚q‘)
{
if(buchstabe[0] == ‚p‘)
{
read1.x = (int *) malloc(sizeof (int));
read1.y = (int *) malloc(sizeof (int));
read1.z = (int *) malloc(sizeof (int));
printf(„Bitte X-Wert eingeben: „);
scanf(“%i“, &read1.x);
printf(„Bitte Y-Wert eingeben: „);
scanf(“%i“, &read1.y);
printf(„Bitte Z-Wert eingeben: „);
scanf(“%i“, &read1.z);
}
if(buchstabe[0] == ‚q‘)
{
break;
}
}
else
{
printf(„Sie haben weder ‚p‘ noch ‚q‘ eingegeben!\n“);
}
}
return 0;
}
Ich bin dankbar für jede Hilfe!
MfG
Christoph