get(i)의 내부 작업
원소가 n = 12개인 ArrayStack, SLList, DLList에서 같은 호출을 실행한다.
get(8)을 실행할 때 세 표현이 각각 하는 일과 이동 횟수를 적는다. DLList는 가까운 끝을 고른다.get(2)에서 SLList와 DLList의 이동 횟수를 적는다.- 세 표현에서 원소 12개를 처음부터 끝까지 훑는 비용을 적고, 임의 접근의 차이가 이 비용을 바꾸지 않는 이유를 적는다.
해설 펼치기
- ArrayStack은 시작 주소에서 여덟 칸 떨어진 위치를 계산 1회로 구한다. SLList는
head에서next를 8회 따라간다. DLList는 8 ≥ 12/2라 뒤쪽 센티널에서prev를 12 − 8 = 4회 따라간다. - 둘 다 앞에서 출발해 2회다.
- 세 표현 모두 모든 원소를 한 번씩 방문해 Θ(n)이다. 순회는 다음 원소로 한 걸음씩 가므로 한 위치에 바로 닿는 능력이 필요 없다.