반응형
SMALL
https://book.naver.com/bookdb/book_detail.nhn?bid=6068296
C언어로 쉽게 풀어쓴 자료구조
이 책은 도입부에서부터 C언어에서 시행착오를 겪는 자료 구조와 알고리즘에 대한 정의를 그림을 통해 충분히 설명하면서 자바 애플릿으로 작성된 가상 실습 소프트웨어로 개념을 확실히 잡아주고 있다. 더 나아가 유사코드로 작성된 알고리즘을 학습하고 최종적으로 C언어로 구현된 내용을 학습할 수 있도록 구성하고 있어, 자료 구조와 알고리즘의 개념의 이해는 물론이고 C언어로 구현된 내용을 통해 C언어를 쉽게 이해할 수 있다.
book.naver.com
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 |