스택
한쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조 LIFO ( Last In First Out ) 구조로 저장되는 형식을 말합니다.
자료를 넣는 것을 Push, 자료를 꺼내는 것을 Pop 이라고 합니다.
꺼내지는 자료는 가장 최근에 보관된 자료부터 나오게 됩니다.
스택의 함수
S.top()
스택의 가장 윗 데이터를 넘겨줍니다.
만약에 비었다면 이 연산은 정의불가의 상태입니다.
S.pop()
스택의 가장 윗 데이터를 넘겨주고 해당 데이터를 스택에서 삭제합니다.
스택이 비었다면 연산은 정의불가 상태입니다.
S.push()
스택의 가장 윗 데이터로 top 이 가리키는 자리 위에 메모리를 생성한 후 데이터를 넣습니다.
S.empty()
스택이 비어있다면 참, 그렇지 않다면 거짓을 반환합니다.
스택의 코드
pop 과 push 에 대해서만 구현한 코드입니다.
#include <stdio.h>
#define MAXSIZE 10
int stack[MAXSIZE];
int top;
int push(unsigned int val) {
if (top >= MAXSIZE-1) {
printf("Stack Overflow.");
return -1;
}
stack[++top] = val;
return val;
}
int pop(void) {
if (top < 0) {
printf("Stack Underflow.");
return -1;
}
return stack[top--];
}
void main(void)
{
int i;
int j;
int k;
top = -1;
push(5);
push(4);
i = pop();
j = pop();
push(7);
printf("%d, %d\n", i, j);
for( k = top; k >= 0; k--)
printf("%d, ", stack[k]);
}'Computer Language > C' 카테고리의 다른 글
| [C] 1차원 배열과 포인터 학습하기 (0) | 2018.11.18 |
|---|---|
| [C] 포인터란 무엇인가? (0) | 2018.11.16 |
| [C] 큐 개념, 종류 및 작동 방식, 코드 정리 (0) | 2018.11.08 |
| [C] 삽입정렬 개념, 알고리즘, 코드 정리 (0) | 2018.11.06 |
| [C] 선택정렬 개념, 알고리즘, 코드 정리 (0) | 2018.11.06 |