题解 | #【模板】栈#

【模板】栈

https://www.nowcoder.com/practice/104ce248c2f04cfb986b92d0548cccbf?tpId=308&tqId=2111163&ru=/exam/oj&qru=/ta/algorithm-start/question-ranking&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D308

#include<stdio.h>
#include<string.h>
#define Max_Size 100000
#define true 1
#define false 0
typedef int _bool;
typedef struct{
    int data[Max_Size];
    int top;
}Struct;

void Init_Struct(Struct *S);//初始化栈
_bool push(Struct* S,int e);//将e入栈
_bool pop(Struct* S);//栈顶出栈
void top(Struct* S);//读栈顶元素

int main(void){
    Struct S;
    Init_Struct(&S);//初始化栈S
    int n = 0;//存储题目输入的n,代表操作次数
    scanf("%d",&n);
    char str[5];//存储输入的操作名
    int x = 0;//存储入栈时将入栈的元素
    while(n > 0){
        scanf("%s",str);
        if(strcmp(str,"push") == 0){
            scanf("%d",&x);
            push(&S,x);
        }
        else if(strcmp(str,"pop") == 0){
            if(pop(&S) == false){
                printf("error\n");
            }
        }
        else if(strcmp(str,"top") == 0){
            top(&S);
        }
        n--;
        for(int i = 0; i < 4;i++){
            str[i] = ' ';
        }//将数组初始化不然影响下次输入后的比较
    }
    return 0;
}
void Init_Struct(Struct *S){
    S->top = -1;
}
_bool push(Struct* S,int e){
    if(S->top == Max_Size - 1){
        return false;//栈已满
    }

    S->top = S->top + 1;
    S->data[S->top] = e;
    return true;
}

_bool pop(Struct* S){
    if(S->top == -1){
        return false;//栈为空
    }
    printf("%d\n",S->data[S->top]);
    S->top = S->top - 1;
    return true;
}
void top(Struct* S){
    if(S->top == -1){
        //栈为空
        printf("error\n");
        return ;
    }
    printf("%d\n",(S->data[S->top]));
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 14:46
和女友两个人马上毕业,现在我在鹅实习995,周六日偶尔也去北京;她在北京金融007,经常忙到后半夜,周末也没啥休息机会两个人现在都不咋聊天了,一句话隔半小时甚至半天才回。&nbsp;她是个很优秀的妹子,工作也很努力,是值得学习一辈子的人。我在努力工作求转正,即便不行至少赚到了一段不错的实习经历。已经异地了半年,接下来可能还会持续是这个状态。我们都算是对方重要的人,只是感觉看上去不是很有未来的样子。希望牛友们给点的鼓励
梦旅奇缘:很难。异地首先就已经很难了,加上妹子是金融行业,忙碌高压,对情感需求很高,而且见惯纸醉金迷,你的很多优势在她那里可能就不算什么了。这种情况下,在她们那里遇到一个能及时照顾她的人,即使那人可能很多条件不如你,你也有可能被分手。 说白了,两个卷王就不太适合在一起。因为卷王最大的优势,在另一个卷王那里就不算优势了。
点赞 评论 收藏
分享
05-22 17:07
已编辑
广东石油化工学院 Java
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务