Home Stack
Post
Cancel

Stack

스택

스택이란?

  • 특정 자료를 저장할 수 있는 배열 형태의 자료구조
  • 데이터의 출입이 1곳 (배열의 뒤)에서만 일어난다는 특징이 있음
    • 데이터가 선입후출되는 구조 (먼저 들어온 데이터가 나중에 나가는 구조)

기본 구현 방법

  1. 배열 생성 (그냥 기본 배열) 2. top 변수 생성 (현재 값이 얼마나 저장되었는지를 나타내는 변수) 3. top의 값을 1씩 늘리면서 그 위치에 값을 저장 4. top의 값을 1씩 줄여가면서 값을 반환

코드

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
#include <stdio.h>

typedef char bool;
const bool true = 1;
const bool false = 0;

#define MAX_IDX 100
int stack[MAX_IDX];
int top = -1;

bool isEmpty() { return (top == -1); }
bool isFull() { return (top == MAX_IDX); }

void push(int x) {
    if (isFull() == false) {
        stack[++top] = x;
    }
    return;
}
int pop() {
    if (isEmpty() == true) {
        printf("[Error] : Nothing in the stack!\n");
        return 0;
    } else {
        return stack[top--];
    }
}

int main() {}
This post is licensed under CC BY 4.0 by the author.