-
(C언어)15. 스택(stack)C언어 문서화 2016. 5. 8. 19:05반응형
<스택>
스택은 자료구조 중 하나이다.
특징 :
1. 먼저 들어온 데이터가 더 늦게 나간다.
2. 반대로 말하면 늦게 들어올수록 더 빨리 나간다는 것이다.
그림 설명 :
공간을 만들었다.
0을 PUSH 했다.
1을 PUSH했다
2를 PUSH했다
POP했더니 2가 나갔다
POP했더니 1이 나갔다
POP했더니 0이 나갔다
구현:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172#include <stdio.h>#include <stdlib.h>int stack[100];//stack선언, 모두 0으로 초기화int cnt=0;//현재 자료의 개수void push(int data, int *top){if(cnt==100){printf("warning : over flow\n");return;}printf("\n\ndata : %d\n\n", data);stack[cnt]=data;++cnt;top=&stack[(*top)++];}void pop(int *top){if(cnt==0){printf("값이 없습니다.\n");return;}else{top=&stack[--cnt];}}void show(){int n;for(n=cnt; n>0; --n){printf("%d ====> %d\n", n, stack[n-1]);}}int main(){int i, input;int the_number_of_stack;int *top;int data;printf("기본 자료 개수 입력 : ");scanf("%d", &input);cnt+=input;for(i=0; i<input; ++i){printf("stack[%d] : ", i);scanf("%d", &stack[i]);}top=&stack[input];while(1){printf("\n\n");printf("0 : 종료\n");printf("1 : PUSH\n");printf("2 : POP\n");printf("3 : SHOW\n");printf("0~3 선택 : ");scanf("%d", &input);if(input==0){return 0;}else if(input==1){printf("data 입력 : ");scanf("%d", &data);push(data, top);}else if(input==2){pop(top);}else if(input==3){show();}}}cs 반응형'C언어 문서화' 카테고리의 다른 글
(C언어)17.그래프(간단), 깊이우선, 너비우선 탐색 (0) 2016.05.11 (C언어)16.큐(Queue) (0) 2016.05.08 (C언어)14.링크드리스트(연결리스트) (2) 2016.05.08 (C언어)13.구조체 (0) 2016.04.27 (C언어) 12. 동적할당 (0) 2016.04.06