[자료구조] 1장. 스택(Stack) 설명
---------------------------------------------
스택은
무더기란 뜻으로
동전 쌓듯이 데이터가 쌓아 올려지는 자료구조입니다.
---------------------------------------------
스택은
먼저들어간 데이터가 나중에 나오는
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이 증가하여 밑으로 한칸 내려갑니다.
이제는 데이터가 모두 제거되고
TOP이 5가 되었습니다.
---------------------------------------------