같은 값, 다른 삭제 의미
빈 스택과 빈 큐에 차례로 red, blue, green을 추가했다. 스택에서는 push, 큐에서는 enqueue를 사용했다.
- 스택에서 pop()이 반환할 값과 호출 뒤 상태를 적는다.
- 큐에서 dequeue()가 반환할 값과 호출 뒤 상태를 적는다.
- 두 구조에 저장된 값과 추가 순서가 같아도 서로 다른 ADT인 이유를 설명한다.
해설 펼치기
- 가장 나중에 추가한 green을 반환하고 상태는 [red, blue]가 된다.
- 가장 먼저 추가한 red를 반환하고 상태는 [blue, green]이 된다.
- ADT는 저장된 값만으로 정해지지 않는다. 어떤 연산을 허용하고 그 연산이 무엇을 반환하며 상태를 어떻게 바꾸는지가 다르므로 서로 다른 ADT다.