CAPS 위키 : 스택(자료구조)

스택(자료구조) [ 수정 내역 ] [ 수정 ]

최근 수정:

목차

1. 개요

2. push

3. pop

4. top

5. empty

6. size

7. 에필로그

1. 개요

https://www.tutorialspoint.com/data_structures_algorithms/images/stack_representation.jpg

stack. 뜻처럼 데이터를 하나씩 쌓아가는 느낌의 자료구조. 흔히들 LIFO (Last In First Out)라 부르며 마지막에 들어온 데이터가 처음에 나간다. 연산으로는 크게 push, pop, top, empty, size 등이 있는데 스택에 데이터를 넣고 빼는 작업을 한다. 여기서 top은 스택에 마지막에 넣은 데이터의 인덱스를 말한다. (또는 마지막 인덱스 + 1)

2. push

스택에 데이터를 추가하는 연산. 배열이라면 제일 뒤에 데이터를 추가한다.

// C 언어

void push(int data)

{

stack[top++] = data;

}

3. pop

스택에서 데이터를 제거하는 연산. 배열이라면 제일 뒤에 있는 데이터를 제거한다. 아니 정확히 말하면 제거한 것처럼 보이게 한다.

// C 언어

void pop()

{

--top;

}

4. top

스택에서 제일 마지막에 넣은 데이터를 리턴해준다.

// C 언어

int top()

{

return stack[top - 1];

}

5. empty

스택이 비어있는지 확인한다. top이 0이면 데이터가 없는 것이다.

// C 언어

int empty()

{

return top == 0;

}

6. size

스택의 크기를 반환한다.

// C 언어

int size()

{

return top;

}

7. 에필로그

스택의 맨 처음 top 초기화는 개인 취향에 따라 -1 또는 0으로 초기화 하면 된다. 위의 코드는 0으로 초기화 했을 경우. C++이나 JAVA등 최신 언어들은 이미 스택 클래스나 라이브러리가 있으므로 가져다 쓰자.