链栈(C语言)
发布日期:2021-05-10 07:59:23 浏览次数:14 分类:精选文章

本文共 1071 字,大约阅读时间需要 3 分钟。

#include "stdio.h"#include "stdlib.h"#define OK true#define ERROR falsetypedef int Status;typedef int ElemType;typedef struct StackNode{	ElemType data;	struct StackNode *next;}StackNode, *LinkStackPtr;typedef struct LinkStack{	LinkStackPtr top;	int count;}LinkStack;void InitLinkStack(LinkStack *S){	S->top = (LinkStackPtr)malloc(sizeof(StackNode));	S->top->next = NULL;	S->count = 0;}Status Push(LinkStack *S, ElemType e){	LinkStackPtr s = (LinkStackPtr)malloc(sizeof(StackNode));	s->data = e;	s->next = S->top;	S->top = s;	S->count++;	return OK;}Status Pop(LinkStack *S, ElemType *e){	LinkStackPtr p;	if (S->count == 0)		return ERROR;	*e = S->top->data;	p = S->top;	S->top = S->top->next;	free(p);	S->count--;	return OK;}void PrintLinkStack(LinkStack *S){	LinkStackPtr p = S->top;	while (p->next != NULL)	{		printf("%d\n", p->data);		p = p->next;	}}int main(){	LinkStack S;	InitLinkStack(&S);	Push(&S, 1);	Push(&S, 2);	Push(&S, 3);	Push(&S, 4);	Push(&S, 5);	PrintLinkStack(&S);	int e;	Pop(&S, &e);	printf("出栈元素:%d\n", e);	PrintLinkStack(&S);	system("pause");	return 0;}
上一篇:基本表的定义、删除与修改
下一篇:顺序栈(C语言)

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年04月22日 18时34分45秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章