자료구조

[자료구조] 1장. 스택(Stack) 설명

팔공산호랑이 2020. 4. 9. 11:40

---------------------------------------------

스택은

무더기란 뜻으로

동전 쌓듯이 데이터가 쌓아 올려지는 자료구조입니다.

---------------------------------------------

스택은

먼저들어간 데이터가 나중에 나오는

Last In, First Out 구조

LIFO 형태입니다.

동전을 바닥부터 쌓고

위에서부터 꺼내간다 생각해보면 이해가 쉽습니다.

---------------------------------------------

스택은

이런식으로

밑에서부터 쌓아올려지는 자료구조입니다.

---------------------------------------------

---------------------------------------------

 

---------------------------------------------

---------------------------------------------

스택에 데이터를 넣는 것을 PUSH라고 하고

스택에서 데이터를 꺼내는것을 POP이라고 합니다.

---------------------------------------------

PUSH는 밀다 라는 뜻으로

POP는 펑 하고 터지는 소리 입니다.

POP CORN 할때POP입니다.

---------------------------------------------

스택은 구현 방법이 다양하지만

우선 가장 쉽게 배열을 이용하여 간단하게 구현할 수 있습니다.

---------------------------------------------

우선 데이터를 집어넣는

PUSH를 구현하는 법부터 살펴보겠습니다.

---------------------------------------------

만약 길이가 5인 배열을 기준으로 구현한다면?

---------------------------------------------

처음 시작형태는 이렇게 됩니다.

배열을 옆으로 뒤집은 모양을 생각해주고

INT변수 TOP 5로 잡아서

배열 범위 바깥으로 잡아준 다음에

---------------------------------------------

PUSH(10)하게되면

TOP값이 하나 줄어들고

그 위치에 데이터 A가 들어가게 됩니다.

---------------------------------------------

PUSH(30)하게되면

TOP값이 하나 줄어들고

그 위치에 데이터 30이 들어가게 됩니다.

이렇게 밑에서부터 차곡차곡 쌓아올려지는 모양입니다.

---------------------------------------------

PUSH(50)하게되면

TOP값이 하나 줄어들고

그 위치에 데이터 50이 들어가게 됩니다.

---------------------------------------------

PUSH(70)하게되면

TOP값이 하나 줄어들고

그 위치에 데이터 70이 들어가게 됩니다.

---------------------------------------------

PUSH(90)하게되면

TOP값이 하나 줄어들고

그 위치에 데이터 90이 들어가게 됩니다.

이렇게 되면 스택에 데이터가 꽉 차게 됩니다.

---------------------------------------------

그 다음

스택에서 데이터를 빼는 POP에 대해서 살펴보겠습니다.

---------------------------------------------

지금 이렇게 스택에

데이터가 꽉찬 상태에서

---------------------------------------------

POP 하게 되면

데이터를 하나 제거하고

TOP이 증가하여 밑으로 한칸 내려갑니다.

---------------------------------------------

POP 하게 되면

데이터를 하나 제거하고

TOP이 증가하여 밑으로 한칸 내려갑니다.

---------------------------------------------

POP 하게 되면

데이터를 하나 제거하고

TOP이 증가하여 밑으로 한칸 내려갑니다.

---------------------------------------------

POP 하게 되면

데이터를 하나 제거하고

TOP이 증가하여 밑으로 한칸 내려갑니다.

---------------------------------------------

POP 하게 되면

데이터를 하나 제거하고

TOP이 증가하여 밑으로 한칸 내려갑니다.

이제는 데이터가 모두 제거되고

TOP5가 되었습니다.

---------------------------------------------