#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node *next;
} LNode, *LinkStack;
LinkStack InitStack() {
return NULL;
}
int Push(LinkStack *s, int e) {
LNode *p = (LNode *)malloc(sizeof(LNode));
if (p == NULL) return -1;
p->next = *s;
*s = p;
p->data = e;
return 1;
}
int Pop(LinkStack *s, int *e) {
if (*s == NULL) return -1;
LNode *p = (*s)->next;
*e = (*s)->data;
free(*s);
*s = p;
return 1;
}
int GetTop(LinkStack s, int *e) {
if (s == NULL) return -1;
*e = s->data;
return 1;
}
void PrintfStack(LinkStack s) {
LNode *p = s;
while (p != NULL) {
printf("%i\n", p->data);
p = p->next;
}
}
void Sep() {
printf("**************\n");
}
int main() {
LinkStack s = InitStack();
Push(&s, 123);
Push(&s, 13);
Push(&s, 12);
Push(&s, 11);
Push(&s, 119);
PrintfStack(s);
Sep();
int e = -1;
Pop(&s, &e);
Pop(&s, &e);
printf("%i\n", e);
Sep();
PrintfStack(s);
Sep();
GetTop(s, &e);
printf("%i\n", e);
return 0;
}
链式栈
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Java代码实现顺序栈和链式栈 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插...
- /** * 用不带头结点的单链表构造的链式栈 * LinkedStack * 创建人:guxiaohao * 时间...