본문 바로가기
부트캠프교육중/알고리즘

Stack

by 뭉지야 2023. 3. 14.
728x90

# Stack
-쌓다, 쌓이다, 포개지다 
-데이터를 순서대로 쌓는 자료구조.

#stack의 구조
-원통을 자료구조 stack, 원통속의 구슬을 data로 비유.
-가장 나중에 넣은 구슬이 원통의 가장 상단에 자리 잡고있고, 구슬을 빼는 경우에 가장 나중에 넣었던 원통 상단에 위치한 구슬을 가장 먼저 뺄수있다.
-자료구조 stack의 특징은 입력과 출력이 하나의 방향, 즉 스택의 최상단에서만 이루어지는 제한적 접근에 있다.
-이런 stack 자료구조의 정책을 LIFO(last in first out) 혹은 FILO(first in last out)라고 부르기도 한다.
-stack에 데이터를 넣는 것을 push, 데이터를 꺼내는 것을 pop라고 한다.

#stack의 특징
1. LIFO(last in first out)
-먼저 들어간 데이터는 제일 나중에 나오는 후입선출의 구조로 되어있다.
-이러한 특성으로 인해 스택 구조 내에서 특정 데이터를 조회할수없으며, 스택의 최상단에서만 데이터를 저장하고 꺼낼수있는 특징이 있다. 그때문에 데이터를 저장할때나 검색할때 항상 스택의 최상단에서만 행위가 이루어지며 이에 따라 데이터를 저장하고 검색하는 프로세스가 매우 빠르다.
2. 하나의 입출력 방향을 가지고 있다.
데이터를 넣을때도 스택의 가장 최상단으로 넣고(입력) 뺄때 또한 스택의 가장 최상단으로 데이터를 뺄수(출력)있다.
3. 데이터는 하나씩 넣고 뺄수 있다.
스택에 한개 씩 여러번 데이터를 넣어 스택 내부에 데이터가 여러개 쌓여있다고 하더라도, 데이터를 뺄때는 스택의 가장 최상단에서 한번에 한개의 데이터만을 뺄수있다.

#stack의 실사용 예제
-브라우저의 뒤로가기, 앞으로가기 기능을 구현할때 

#브라우저에서 자료구조 stack이 사용될때는 다음의 순서를 거친다.
1. 새로운 페이지로 접속할때, 현재 페이지를 Prev Stack에 보관한다.
2. 뒤로 가기 버튼을 눌러 이전 페이지로 돌아갈때는, 현재 페이지를 next stack에 보관하고 prev stack에 가장 나중에 보관된 페이지를 현재 페이지로 가져온다.
3. 앞으로 가기 버튼을 눌러 앞서 방문한 페이지로 이동을 원할 때는, next stack의 가장 마지막으로 보관된 페이지를 가져온다.
4. 마지막으로 현재 페이지를 Prev stack에 보관한다.

728x90

'부트캠프교육중 > 알고리즘' 카테고리의 다른 글

트리 순회  (0) 2023.03.15
이진트리, 이진탐색트리  (0) 2023.03.15
tree  (0) 2023.03.15
Queue  (0) 2023.03.14
자료구조  (0) 2023.03.14