c언어(알고리즘)
스택(Stacks) - 배열로 구현(The implementation with the array)
Happy_Dobi
2016. 11. 1. 16:24
1. 스택
- 후입선출(Last-In-First-Out(LIFO)) 원리의 자료구조이다.
- 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형구조로 되어있다.
2. stack 함수
- int stackpop(int *) : 스택에서 top이 가리키는 요소를 꺼내는 함수
- void stackpush(int *,int) : 스택에 요소를 삽입하는 함수
- int stackempty(int) : 스택이 비어있는지 검사 하는 함수
3. 소스
- #include<stdio.h>
- int stackpop(int *); // 스택에서 top이 가리키는 요소를 꺼내는 함수
- void stackpush(int *,int); // 스택에 요소를 삽입하는 함수
- int stackempty(int); // 스택이 비어있는지 검사 하는 함수
- int top = -1;
- int main(void)
- {
- int arr[10] = {0,};
- stackpush(arr,10);
- stackpop(arr);
- return 0;
- }
- int stackpop(int *arr)
- {
- int data = 0;
- if(stackempty(top) < 0) // top 의 위치를 검사하고 스택이 비어있으면 NULL을 반환한다.
- return NULL;
- else // top의 위치를 검사하고 데이터가있으면 스택의 가장 위의 데이터가 반환된다.
- {
- data = (*(arr+(top--)));
- return data;
- }
- }
- void stackpush(int * arr, int data) // 스택에 데이터를 삽입하는 함수
- {
- (*(arr+(++top))) = data;
- }
- int stackempty(int top) // top위치를 검사해 스택의 상태를 반환한다.
- {
- if(top < 0)
- {
- return -1;
- }
- else
- return 1;
- }
4. 결과