반응형
SMALL
https://book.naver.com/bookdb/book_detail.nhn?bid=6068296
C언어로 쉽게 풀어쓴 자료구조를 참고한 내용입니다.
#include <stdio.h>
#define MAX_STACK_SIZE 100
typedef int element;
typedef struct{
element stack[MAX_STACK_SIZE];
int top;
} StackType;
void init(StackType *s)
{
s->top=-1;
}
int is_empty(StackType *s)
{
return (s->top == -1);
}
int is_full(StackType *s)
{
return (s->top == (MAX_STACK_SIZE-1));
}
void push(StackType *s, element item)
{
if(is_full(s)){
fprintf(stderr, "STACK FULL ERROR\n");
return;
}
else s->stack[++(s->top)] = item;
}
element pop(StackType *s)
{
if(is_empty(s)){
fprintf(stderr, "STACK EMPTY ERROR\n");
exit(1);
}
else return s->stack[(s->top)--];
}
element peek(StackType *s)
{
if(is_empty(s)){
fprintf(stderr, "STACK PEEK ERROR");
exit(1);
}
else return s->stack[s->top];
}
void main(){
StackType s;
init(&s);
push(&s, 1);
push(&s, 2);
printf("%d\n", pop(&s));
printf("%d\n", pop(&s));
}
C로 이처럼 Stack을 구현할 수 있지만 C++로 코드할 때는 #include<stack>로 편리하게 사용 가능합니다.
반응형
LIST
'코딩스터디' 카테고리의 다른 글
7102. 준홍이의 카드놀이 (0) | 2019.05.12 |
---|---|
7193. 승현이의 수학공부 (0) | 2019.05.12 |
1222. [S/W 문제해결 기본] 6일차 - 계산기1 (0) | 2019.05.05 |
1218. [S/W 문제해결 기본] 4일차 - 괄호 짝짓기 (0) | 2019.05.05 |
1210. [S/W 문제해결 기본] 2일차 - Ladder1 (0) | 2019.05.05 |