题解 | #堆栈的使用#

堆栈的使用

https://www.nowcoder.com/practice/e91982a145944ceab6bb9a4a508e0e26

#include <stdio.h>

#include <stdbool.h>

#define MaxSize 1000

typedef struct test {

int data[MaxSize];

int top;

} Stack;

void InitStack(Stack* S) {

S->top = -1;

}

bool Push(Stack* S, int x) {

if (S->top == MaxSize - 1)

return false;

else {

S->data[++S->top] = x;

return true;

}

}

bool Pop(Stack* S, int* x) {

if (S->top == -1)

return false;

else {

*x = S->data[S->top--];

return true;

}

}

bool GetTop(Stack S, int* x) {

if (S.top == -1)

return false;

else {

*x = S.data[S.top];

return true;

}

}

int main() {

int n;

while ((scanf("%d", &n)) != EOF)

{

Stack S;

InitStack(&S);

while (n--) {

getchar();

char ch;

scanf("%c",&ch);

if (ch == 'A') {

int x = 0;

if (!GetTop(S, &x))

printf("E\n");

else {

GetTop(S, &x);

printf("%d\n", x);

}

} else if (ch == 'P') {

int z=0;

scanf(" %d",&z);

Push(&S, z);

} else if (ch == 'O') {

int y = 0;

Pop(&S, &y);

}

}

}

return 0;

}

全部评论

相关推荐

11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务