자료구조_c언어_배열스택_arrayStack_04
2021. 2. 4. 10:36ㆍ개발하는중/자료구조
728x90
반응형
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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | #include <stdio.h> #include <stdlib.h> #include <conio.h> #define MAX_STACK_SIZE 100 typedef int element; typedef struct { element stack[ MAX_STACK_SIZE ]; int top; }StackType; int is_empty(StackType *s) { return (s->top == -1); } int is_full(StackType *s) { return (s->top == MAX_STACK_SIZE - 1); } void push(StackType *s, element item) { if (is_full(s)) { printf("STACK OVERFLOW!!\n"); } else s->stack[++(s->top)] = item; } void pop(StackType *s) { if (is_empty(s)) { printf("STACK UNDERFLOW!!\n"); } else printf("pop된 데이터 : %d\n", s->stack[(s->top)--]); } void init(StackType *s) { s->top = -1; } void peek(StackType *s) { if (is_empty(s)) { printf("peek할 데이터가 없음\n데이터를 입력 하세요.\n"); } else printf("현재 peek된 데이터:%d\n", s->stack[s->top]); } void all(StackType *s) { int i; if (is_empty(s)) { printf("저장된 데이터가 없습니다.\n"); printf("데이터를 1개이상 입력하세요.\n"); } else { printf("=====현재 저장된 데이터=====\n"); printf("\t----------\n"); for (i = s->top; i > -1; i--) { printf("\t| %-2d |\n", s->stack[i]); printf("\t---------\n"); } } } int main() { StackType test; int option, data; init(&test); while (1) { system("cls"); printf("======MENU======\n"); printf("1. PUSH\n"); printf("2. POP\n"); printf("3. PEEK\n"); printf("4. ALL\n"); printf("5. RESET\n"); printf("6. EXIT\n"); printf("====> "); scanf("%d", &option); switch (option) { case 1: printf("PUSH할 데이터를 입력\n"); printf("====> "); scanf("%d", &data); printf("%d를 입력했습니다.\n", data); push(&test, data); break; case 2: pop(&test); break; case 3: peek(&test); break; case 4: all(&test); break; case 5: init(&test); break; case 6: exit(0); default: fflush(stdin); printf("잘못 입력함"); printf("다시 입력할 준비가 되었으면 아무키나 누르세요.\n"); } option = 0; getche(); } } | cs |
728x90
'개발하는중 > 자료구조' 카테고리의 다른 글
자료구조_c언어_배열스택_arrayStack_05 (0) | 2021.02.24 |
---|---|
자료구조_c언어_서클 큐_circleQueue_01 (0) | 2021.02.10 |
자료구조_c언어_배열스택_arrayStack_03 (0) | 2021.02.03 |
자료구조_c언어_배열스택_arrayStack_02 (0) | 2021.02.02 |
자료구조_c언어_배열스택_arrayStack_01 (0) | 2021.02.01 |