도순씨의 코딩일지
C언어로 쉽게 풀어쓴 자료구조 개정3판 4장 10번 본문
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 | // Stack code #include <stdio.h> #include <stdlib.h> #define MAX_STACK_SIZE 6 typedef int element; typedef struct{ int top; element data[MAX_STACK_SIZE]; } StackType; void init_stack(StackType *s){ s -> top = -1; } 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)){ fprintf(stderr, "스택 포화 에러\n"); exit(1); } else s -> data [++(s -> top)] = item; } element pop(StackType *s){ if(is_empty(s)){ fprintf(stderr, "스택 공백 에러\n"); exit(1); } else return s -> data[(s->top)--]; } element peek(StackType *s){ if(is_empty(s)){ fprintf(stderr, "스택 공백 에러\n"); exit(1); } else return s -> data[s->top]; } // 여기부터 문제를 위한 코드 int main(void){ int i; int temp; StackType s; printf("정수 배열의 크기: %d\n", MAX_STACK_SIZE); init_stack(&s); printf("정수를 입력하시오: "); for(i=0; i<MAX_STACK_SIZE; i++){ scanf("%d", &temp); push(&s, temp); } printf("반전된 정수 배열: "); for(i=0; i<MAX_STACK_SIZE; i++){ printf("%d ", pop(&s)); } return 0; } | cs |
'𝐏𝐑𝐎𝐆𝐑𝐀𝐌𝐌𝐈𝐍𝐆 > 𝐂' 카테고리의 다른 글
쉽게 풀어쓴 C언어 EXPRESS Programming 7장 13번 (0) | 2020.10.18 |
---|---|
쉽게 풀어쓴 C언어 EXPRESS Programming 7장 14번 (0) | 2020.10.16 |
쉽게 풀어쓴 C언어 EXPRESS Programming 5장 2번 (0) | 2020.10.13 |
쉽게 풀어쓴 C언어 EXPRESS Programming 5장 1번 (0) | 2020.10.12 |
쉽게 풀어쓴 C언어 EXPRESS Programming 4장 11번 (0) | 2020.10.11 |
Comments