#include "stdio.h"
#include "stdlib.h"
struct node_type {
int data;
struct node_type *next;
};
struct stack_type{
node_type *top;
int length;
};
void push(node_type *head,stack_type stack);
int main()
{
struct stack_type stack;
node_type *list;
list = (node_type *)malloc(sizeof(node_type));
list->next = NULL;
node_type *head;
head = list;
stack.length = 0; //set stack empty
push(head, stack);
list = head->next;
printf("The entegers are:");
do {
printf("%d", stack.top->data);
list = list->next;
stack.top = list;
} while (list->next != 0);
system("pause");
return 0;
}
void push(node_type *head,stack_type stack)
{
int i, n;
node_type *p;
p = (node_type*)malloc(sizeof(node_type));
p = head;
printf("Enter the integers(0 to end):");
for (;;) {
scanf("%d", &n);
if (n == 0)
break;
stack.top->data = n;
p->next = stack.top;
stack.length++;
}
}
wenn ich debugge, sagte es, dass p-> next = NULL und zu stoppen, bin ich nicht klar darüber.verkettete Listen Implementierung des Stapels
warum ich falsch? Wie es zu beheben ist, bin ich nicht klar über die Verwendung von NULL und Top Finger Vielen Dank für die Antworten im Voraus.
In dem spezifischen Abschnitt aussehen deklariert werden sie stoppt? – Ajay
c oder C++? wähle eins. – Magisch
Dies ist kein richtiger Stack-Betrieb .... Die korrekte Implementierung des Stacks sollte sein: Es sollte eine "push (item, top)" -Funktion geben, um die Elemente zu drücken und "pop (top)" -Funktion, um die Elemente zu zeigen – Shiv