티스토리 뷰

스택

스택은 FILO 구조로 First in Last out입니다.

스택의 맨 밑 바닥은 base또는 bottom 맨위는 top이라 불립니다.

 

스택에 자료를 넣는 것을 push 빼는것을 pop이라 부릅니다.

 

스택구조에서 자료를 삽입하거나 출력할때 탑은 스택안에 들어있는

자료의 맨 위의 위치를 가리키며 움직이게 됩니다.

 

 

 

 

 

만약 스택에 push를 해서 스택구조의 최대까지 도달하게 되었으면

오버플로우 상태라고 나타내고, 더이상 push를 하여 자료를 넣을수 없게됩니다.

 

반대로 pop을 해서 스택구조의 최저까지 도달하게될시에는

언더플로우 상태라고 나타내고, 더이상 pop을하여 자료를 출력할수없게됩니다.

 

 

 

이 스택구조는 대체 어디에 쓰이냐?

우리가 흔히 사용하는 중위 표기법!

 ex)5+8x8 와 같이 연산자가 가운데에 있는 표기법은 우리에게는 너무나 익숙하지만,

 

컴퓨터에게는 그렇지 않습니다.

사칙연산에는 우선순위가 있어서 우선순위에 맞게 식을 입력해주어야

컴퓨터가 계산을 할수있게됩니다.

 

이를 나타낸것이 후위표기법입니다.

 

ex)24+, 45x 와 같이 연산자가 뒤에있는 식이 그런 후위표기식입니다.

 

이 스택에 피연산자(숫자)를 삽입하고, 연산자를 만나면

삽입된 피연산자를 빼낸뒤 연산을 한뒤에 스택에 다시 삽입하게됩니다.

 

 

 

또, 스택용도는 프로그래밍 하고, 프로그램을 사용할때도 항상 쓰이고 있습니다.

어떻게 쓰이냐구요?

 

바로! 메소드의 처리과정에서 쓰이고 있답니다.

 

http://boxfoxs.tistory.com/entry/Java-객체지향2

 

여기서 설명하는 호출스택 구조에서 쓰이게 됩니다.

메소드가 작동할때는 호출 스택이라는 공간에 저장되어 작동하게되는데,

메소드 내에서 메소드를 실행할때마다 차곡차곡 스택구조로 쌓이다가,

메소드가 종료됬을때 pop이 되며 순차적으로 작업이 처리됩니다.

 

 

 

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함