用c实现数据结构中链表栈的实现
include <stdio.h>
#include <stdlib.h>
typedef struct{
char data;
Stack* next;
}Stack;
Stack* InitStack(Stack* L) {
L = (Stack*)malloc(sizeof(Stack));
if (L == NULL) {
return;
}
else {
L->next = NULL;
return L;
}
}
int IsEmpty(Stack* L) {
if (L->next == NULL) {
return 1;
}
else {
return 0;
}
}
Stack* Push(Stack* L, char p) {
Stack* q = (Stack*)malloc(sizeof(Stack));
q->data = p;
q->next = NULL;
if (L->next != NULL) {
q->next = L->next;
L->next = q;
return L;
}
else {
printf("Stack is empty");
return L;
}
}
char Pop(Stack* L) {
if (L->next == NULL) {
printf("Stack is empty");
return L;
}
else {
Stack* p = (Stack*)malloc(sizeof(Stack));
p = L->next;
L->next = p->next;
char c = p->data;
free(p);
return c; ,
}
}