#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 * 时间...
