반응형
참고자료
https://jung-story.tistory.com/5?category=826491
https://jung-story.tistory.com/6?category=826491
https://jung-story.tistory.com/8?category=826491
개요
이번에는 자료구조 중에서 순차 스택에 대해서 알아보도록 하겠습니다.
스택 구조
스택(Stack)이란 자료구조는
- 선입 후출(First In, Last Out: FILO)
- 후입 선출(Last In, First Out: LIFO)
구조를 가지고 있습니다.
활용예시
- 후입 선출(LIFO)의 특징을 활용하여 여러 분야에서 활용 가능합니다.
- 웹 브라우저 방문 기록 (뒤로 가기)
- 실행 취소 (undo)
- 역순 문자열 만들기
- 수식의 괄호 검사 (연산자 우선순위 표현을 위한 괄호 검사)
- 후위 표기법 계산
예제
이번에는 이러한 스택 알고리즘을 C언어의 배열을 이용한 순차 스택을 구현해 보겠습니다!
#define STACK_SIZE 20
#include <stdio.h>
typedef int element;
element stack[STACK_SIZE]; // 스택생성!
int top = -1; //스택의 위치를 나타내기위한 변수
int isEmpty() {
if (top == -1) {
return 1; // true 값
}
else {
return 0; // false 값
}
}
int isFull() {
if (top == STACK_SIZE - 1) {
return 1; // true 값
}
else {
return 0; // false 값
}
}
void push(element data) {
if (isFull()) {
printf("stack이 가득 찼습니다\n");
return;
}
else {
stack[++top] = data;
}
}
element pop() {g
if (isEmpty()) {
printf("stack이 비어있습니다");
return 0;
}
else {
return stack[top--];
}
}
void PrintInfo() {
int i;
for (i = 0; i <= top; i++) {
printf("[%d] ,", stack[i]);
}
printf("\n");
}
int main() {
push(1);
PrintInfo();
push(2);
PrintInfo();
push(3);
PrintInfo();
pop();
PrintInfo();
pop();
PrintInfo();
}
실행화면
이렇게 순차 스택에 대해서 알아보았습니다.
반응형
'알고리즘 & 자료구조 > 자료구조' 카테고리의 다른 글
자료구조 (원형 큐) (0) | 2019.12.02 |
---|---|
자료구조 (연결 스택) (0) | 2019.12.02 |
자료구조 병합정렬 , 셸정렬 (0) | 2019.11.26 |
자료구조 선택정렬, 버블정렬, 삽입정렬 (4) | 2019.11.26 |
자료구조 (Linked list) - 알고리즘 & 자료구조 C언어 (1) | 2019.11.26 |