1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | #include <stdio.h> // STACK_MAX 값 설정 #define STACK_MAX 100 // top 변수 선언 int top; int stack[STACK_MAX]; // Init 함수로 top을 0으로 초기화 void stackInit(void) { top = 0; } // top==0 이면 true 리턴, 아니면 false 리턴 int stackIsEmpty(void) { return (top == 0); } // top==STACK_MAX 이면 true 리턴, 아니면 false 리턴 int stackIsFull(void) { return (top == STACK_MAX); } // isFull() 함수를 통해 스택이 가득 차 있는지 확인, 아니면 stack[top++]=data. int stackPush(int value) { if (stackIsFull()) { printf("stack overflow!"); return 0; } stack[top] = value; top++; return 1; } //isEmpty() 함수를 통해 스택이 비어있는지 확인, 아니면 data= stack[--top] int stackPop(int *value) { if (stackIsEmpty()) { printf("stack is empty!"); return 0; } top--; *value = stack[top]; return 1; } int main(int argc, char* argv[]) { int T, N; scanf("%d", &T); for (int test_case = 1; test_case <= T; test_case++) { scanf("%d", &N); stackInit(); for (int i = 0; i < N; i++) { int value; scanf("%d", &value); stackPush(value); printf("setValue"); } printf("#%d ", test_case); while (!stackIsEmpty()) { int value; if (stackPop(&value) == 1) { printf("%d ", value); } } printf("\n"); } return 0; } | cs |
반응형
'잡다한 IT > 자료구조' 카테고리의 다른 글
연결 리스트로 완전 이진 탐색(BST) 구현 (0) | 2018.04.24 |
---|---|
연결리스트를 통한 큐 구현 (0) | 2018.04.24 |
연결리스트를 통한 스택 구현 (0) | 2018.04.24 |
링크드 리스트 구현 (0) | 2018.04.23 |
배열을 이용한 큐 (0) | 2018.04.22 |