티스토리 뷰

Computer Science/자료구조

스택 (Stack)

JINSUKUKU 2021. 12. 8. 03:10

스택 (Stack)

- 스택은 박스 쌓기처럼 먼저 쌓은 박스를 마지막에 꺼낼 수 있다

- 이러한 구조를 선입 후출(First In Last Out / FILO) 혹은 후입 선출(Last In First Out) 구조라고 말한다

- 스택은 데이터를 일시적으로 저장하기위한 데이터 구조이다

 

- 스택에 데이터를 넣는 작업은 push, 스택에서 데이터를 꺼내는 작업은 pop이라고 말한다

- 박스쌓기와 같은 스택은, 데이터를 넣는 작업과 꺼내는 작업 모두 위쪽으로부터 수행된다

- 스택에서 푸시와 팝을 하는 위치를 꼭대기(top), 스택의 가장 아래부분은 바닥(Bottom)이라고 부른다

- 자바는 메서드를 호출하고 실행할 때 프로그램 내부에서는 스택을 사용한다

 

 

public class Test {
	public static void main(String[] args) {
		z();
	}

	static void x() {System.out.println("x");}
	static void y() {System.out.println("y");}
	static void z() {
		x();
		y();
	}
}

 

예제 코드를 통해 Java 프로그램에서 메서드를 호출하고 실행할하는 과정을 살펴보자. 그림으로 표현하면 아래와 같다.

 

- 가장 먼저 main 메서드가 스택에 올라간다

- main 메서드에서 z 메서드를 호출하면, main메서드의 위에 z메서드가 올라간다

- z 메서드에서 또 다른 메서드인 x 메서드를 호출하므로, z 메서드의 위에 x 메서드가 push 된다

- x 메서드가 종료되면, x 메서드는 pop 된다

- 다시 z 메서드로 돌아가 다음 코드를 수행하는데, 이번에는 y 메서드가 z 메서드 위에 push 된다

- y 메서드가 종료되어 pop 되고, 다시 z 메서드로 돌아간다

- z 메서드도 종료되어 pop 되고, 호출 위치인 main 메서드로 돌아간다

- main 메서드 역시 종료되어 pop 된다

 

 

 

'Computer Science > 자료구조' 카테고리의 다른 글

힙(Heap)  (0) 2021.12.08
큐 (Queue)  (0) 2021.12.08
이진 탐색(3) 이것이 코딩테스트다 - 실전 문제  (0) 2021.12.03
이진 탐색(2) 이진 탐색 트리  (0) 2021.12.02
이진 탐색(1) 순차 탐색, 이진 탐색  (0) 2021.12.01
댓글
«   2024/12   »
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 30 31
최근에 올라온 글
글 보관함
Total
Today
Yesterday