#include<stdio.h>
#include<malloc.h>
#include <iostream>
using namespace std;
#define OK 1
#define ERROR 0
typedef int Status;
typedef struct StackNode {
Status data;
struct StackNode *next;
} StackNode, *LinkStack;
//初始化栈
Status InitStack(LinkStack &S) {
S = NULL;
return OK;
}
//入栈
Status Push(LinkStack &S) {
Status e;
StackNode *p;
p = new StackNode;
cout << "请输入要入栈的整数" << endl;
cin >> e;
p->data = e;
p->next = S;
S = p;
return OK;
}
Status Pop(LinkStack &S) {
Status e;
LinkStack p;
//删除S的栈顶元素,输出
if (S == NULL) {
return ERROR;
}
e = S->data;
cout << e;
p = S;
S = S->next;
free(p);
return OK;
}
int main() {
LinkStack S;
int i = 0;
int e = 0;
InitStack(S);
cout << "请输入要入栈的次数" << endl;
cin >> i;
e = i;
while (i > 0) {
i--;
Push(S);
}
cout << "入栈完成" << endl;
while (e) {
e--;
Pop(S);
}
cout << "弹栈完成" << endl;
return 0;
}
04.链栈的简单案例
最新推荐文章于 2022-03-01 23:41:56 发布