题解 | #【模板】栈#

【模板】栈

https://www.nowcoder.com/practice/104ce248c2f04cfb986b92d0548cccbf

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct NODE
{
    int data;
    struct NODE* next;
}NODE;
typedef struct STACK
{
    NODE* top;
    size_t cnt;
}STACK;
NODE* create_node(int data)
{
    NODE* node = malloc(sizeof(NODE));
    node->data = data;
    node->next = NULL;
    return node;
}
STACK* create_stack(void)
{
    STACK* stack = malloc(sizeof(STACK));
   // NODE* node = create_node(0);
    stack->top = NULL;
    stack->cnt = 0;
    return stack;
}
void push(STACK* stack, int data)
{
    NODE* node = create_node(data);
    if (stack->cnt == 0)
    {
        stack->top = node;
        stack->cnt++;
    }
    else
    {
        node->next = stack->top;
        stack->top = node;
        stack->cnt++;
    }
}

int pop(STACK* stack)
{
    if (stack->cnt <= 0)
    {
        printf("error\n");
        return -1;
    }
    int data=stack->top->data;
    NODE* temp = stack->top;
    stack->top = stack->top->next;
    stack->cnt--;
    free(temp);
    return data;
}
int top(STACK* stack)
{
    if (stack->cnt <= 0)
    {
        printf("error\n");
        return -1;
    }
    return stack->top->data;
}

int main()
{
    STACK* stack = create_stack();
    int n = 0;
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
    {
        char arr[10];
        scanf("%s", arr);
        if (strcmp("push", arr) == 0)
        {
            int data = 0;
            scanf("%d\n", &data);
            push(stack, data);
        }
        else if (strcmp("pop", arr) == 0)
        {
            int num = pop(stack);
            if (num != -1)
                printf("%d\n", num);
        }
        else if (strcmp("top", arr) == 0)
        {
            int num = top(stack);
            if (num != -1)
                printf("%d\n", num);
        }
        else
        {
            break;
        }
    }

    return 0;
}


全部评论

相关推荐

有担当的灰太狼又在摸鱼:零帧起手查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务