반응형
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct {
int data;
struct Node *next;
} Node;
typedef struct {
int count;
Node *top;
} Stack;
void push(Stack *stack, int data) {
Node *node = (Node*)malloc(sizeof(Node));
node->data = data;
node->next = stack->top;
stack->top = node;
stack->count++;
}
int pop(Stack *stack) {
if(stack->count == 0) {
return -1;
} else {
Node *node = stack->top;
int data = node->data;
stack->top = node->next;
free(node);
stack->count--;
return data;
}
}
int isEmpty(Stack *stack) {
if(stack->count == 0) {
return 1;
} else {
return 0;
}
}
int top(Stack *stack) {
if(stack->count == 0) {
return -1;
} else {
return stack->top->data;
}
}
int main(void) {
int TestCase;
scanf("%d", &TestCase);
Stack s;
s.top == NULL;
s.count = 0;
for(int i = 0; i < TestCase; i++) {
char N[6];
scanf("%s", N);
if(!strcmp(N, "push")) {
int data;
scanf("%d", &data);
push(&s, data);
} else if(!strcmp(N, "pop")) {
int data = pop(&s);
printf("%d\n", data);
} else if(!strcmp(N, "size")) {
printf("%d\n", s.count);
} else if(!strcmp(N, "empty")) {
int data = isEmpty(&s);
printf("%d\n", data);
} else {
int data = top(&s);
printf("%d\n", data);
}
}
return 0;
}
연결리스트를 이용해 스택을 구현하여 문제를 처리하였다.
반응형
'BaekJoon > C++' 카테고리의 다른 글
10845 : 큐 (C) (0) | 2021.01.10 |
---|---|
9012 : 괄호 (C) (0) | 2021.01.09 |
10870 : 피보나치 수 5 (C++) (0) | 2020.12.21 |
10872 : 팩토리얼 (C++) (0) | 2020.12.20 |
2751 : 수 정렬하기 2 (C++) (0) | 2020.11.21 |
댓글