Stack, Queue 활용
반응형
이번시간에는 스택과 큐가 실제로 어떻게 활용되는지 예제르 통해서 알아보자.
- 스택의 활용 예 - 수식계산, 수식괄호검사, 워드프로세서의 undo/redo, 웹브라우저의 뒤로/앞으로
- 큐의 활용 예 - 최근사용문서, 인쇄작업 대기목록, 버퍼(buffer)
[스택의 활용 예]
수식계산의 경우, ((3+2)*8)/2 이러한 계산이 있으면, 이것은 스택을 활용해서 계산된다.
수식괄호 검사는, 수식에서 여는괄호와 닫는괄호의 갯수가 일치하는지 확인할 때 스택을 활용한다.
워드프로세서의 undo/redo (취소, 복구)에도 스택이 사용된다.
그리고 웹 브라우저의 다음으로가기 버튼과 이전으로가기 버튼에도 스택이 사용된다.
현재페이지가 D일 때, 뒤로가기 버튼을 누르면, 또하나의 스택을 만들어서 페이지D를 새로운 스택으로 옮겨놓는다.
그리고 현재페이지는 N이된다.
이상태에서 다시 앞으로가기 버튼을 누르면 다른스택에 있던 D를 다시 원래스택에 가져온다.
그러면 현재페이지가 다시 D를 가리킨다.
사실은 스택 한개와 현재를 가리키는 "포인터"를 이용해서 구현하는데,
설명을 쉽게하기위해 스택2개로 설명했다.
[큐의 활용 예]
보통 프로그램을 보면, 최근에 사용했던 문서들의 목록을 가지고 있다.
최근 5개 최근7개처럼 갯수에 제한을 가지고 있다.
최대 5개를 보여준다고하면, 내가 새로운 문서를 열었을 때,
최근 사용했던 문서의 목록의 제일 첫번째 항목을 빼서 없애고 2345가 앞으로 한칸이동하고, 내가 새로 사용한 문서가 5번자리에 들어가게 된다. 큐자료구조를 이용한 것이다.
인쇄작업 대기목록에도 큐를 사용하고,
버퍼(buffer)에도 큐자료구조가 사용된다.
[Ex11_3]
[Ex11_4]
반응형
'JAVA' 카테고리의 다른 글
Arrays (0) | 2022.04.30 |
---|---|
Iterator, Enumeration, Map과 Iterator (0) | 2022.04.29 |
Stack과 Queue (0) | 2022.04.28 |
LinkedList (0) | 2022.04.28 |
ArrayList (0) | 2022.04.28 |
댓글
이 글 공유하기
다른 글
-
Arrays
Arrays
2022.04.30 -
Iterator, Enumeration, Map과 Iterator
Iterator, Enumeration, Map과 Iterator
2022.04.29 -
Stack과 Queue
Stack과 Queue
2022.04.28 -
LinkedList
LinkedList
2022.04.28