스택
한쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조 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 |