자료구조_c언어_배열스택_arrayStack_01
2021. 2. 1. 09:15ㆍ개발하는중/자료구조
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 | #include <stdio.h> #include <stdlib.h> #define STACK_SIZE 100 typedef int element; element stack[STACK_SIZE]; int top = -1; void push(element item) { if (top >= STACK_SIZE - 1) { printf("\n\n Stack is Full\n"); return; } else stack[++top] = item; // 전위연산자로 top가 가르킨 공간에 데이터 입력 } element pop() { if (top == -1) { printf("\n\n Stack id Empty\n"); return 0; } else return stack[top--]; // top이 가르키는 대상 데이터 뺴고 후위연산자로 그전 데이터를 가르킨다 } void del() { // 데이터 내용 지우지 않고 이동만한것 if (top == -1) { printf("\n\n Stack is Empty\n"); exit(1); // 강제종료 } else top--; } element peek() { // 조회 if (top == -1) { printf("\n\n Stack is Empty\n"); exit(1); } else return stack[top]; // 현재 위치의 값 조회 } void printStack() { int i; printf("\n STACK["); for (i = 0; i < top; i++) { printf("%d ", stack[i]); } printf("]"); } int main() { int item; printStack(); push(1); printStack(); push(2); printStack(); push(3); item=peek(); printStack(); printf("\t peek top=>%d \n", item); del(); printStack(); item = pop(); printStack(); printf("\t pop top=>%d", item); pop(); printStack(); pop(); //printStack(); getchar(); // 대기 상태 문자하나 줄때까지 대기한다. enter치면끝 return 0; } | cs |
728x90
'개발하는중 > 자료구조' 카테고리의 다른 글
자료구조_c언어_배열스택_arrayStack_04 (0) | 2021.02.04 |
---|---|
자료구조_c언어_배열스택_arrayStack_03 (0) | 2021.02.03 |
자료구조_c언어_배열스택_arrayStack_02 (0) | 2021.02.02 |
자료구조_c언어_연결링크_linkedStack02 (0) | 2021.01.31 |
자료구조_c언어_연결링크_linkedStack01 (2) | 2021.01.29 |