C언어 스택 구현

(C언어 스택에서 넘어옴)

1 개념[ | ]

C stack 구현
C언어 스택 구현
C
CPU
0.0s
MEM
18M
0.1s
Copy
#include <stdio.h>
#define MAX_N 100

int top = 0;
int stack[MAX_N];

void clear() {
    top = 0;
}

int empty() {
    return top == 0;
}

void push(int value) {
    if (top == MAX_N) {
        printf("overflow!!!\n");
        return;
    }
    stack[top] = value;
    top++;
}

int pop() {
    if (empty()) {
        printf("empty!!!\n");
        return 0;
    }
    top--;
    return stack[top];
}

int main() {
    push(1);
    push(2);
    push(3);
    while(!empty()) {
        printf("%d ", pop()); // 3 2 1
    }
    printf("\n");
    clear();
    push(3);
    push(2);
    push(1);
    while(!empty()) {
        printf("%d ", pop()); // 1 2 3
    }
    printf("\n");
    pop(); // empty!!!
}
3 2 1 
1 2 3 
empty!!!

2 같이 보기[ | ]

  • C, C++ 주석
    C에도 적용되는 주석 문법이라면, "C와 C++ 주석"으로 제목을 옮기면 어떨까요? Ykhwong
  • C, C++ 주석
    @Ykhwong 네네. 좋은 의견 입니다. 변경 부탁드려요. John Jeong
  • C, C++ 주석
    'C스타일 주석'이라는 제목도 괜찮겠네요.J Jmnote
  • C, C++ 주석
    'C, C++ 주석' 형태로 최종 가도록 하겠습니다. C와 C++ 까지의 현재 범위를 명확히 하려 합니다. John Jeong
  • C언어 연결리스트 구현
    마지막에 메모리 해지는 어떤식으로 해야되나요?? 돌멩이
  • C언어 연결리스트 구현
    @돌맹이 head 가 널까지 가는거 보시고 코드가 아름 답진 않지만 대략 아래 방법처럼 하나씩 삭제 하시면 될 것 같습니다. void deleteNode(nodeType *head) { nodeType *ptr = head, *ptr2 = NULL; while(ptr- John Jeong
  • C언어 연결리스트 구현
    답변 감사합니다! 돌멩이