value
와 next
프로퍼티를 가진다.head
, tail
, _size
addToTail(value)
, remove(value)
, getNodeAt(index)
, contains(value)
, indexOf(value)
, size()
Hash Function
를 통해 특정 해쉬로 변환한다. 해시 테이블은 필요할 때에만 메모리 크기를 늘리고, 작은 크기를 유지한다.storage
,_size
, _limit
insert(key, value)
, retrieve(key)
, remove(key)
, _resize(newLimit)
노드는 어떻게 구성되어 있는가?
value
속성과 다음 노드를 가리키고 있는 next
속성이 있다.연결리스트에서 단일 연결 리스트와 이중 연결 리스트는 어떤 차이가 있는가?
next
만 존재하여 어떤 노드가 자신을 가리키고 있는지 모르지만, 이중 연결 리스트는 previous
속성이 있어서 자신의 이전 노드와 다음 노드를 모두 알 수 있다.remove
할 때 시간 복잡도가 O(n)
이지만, 이중 연결 리스트는 O(1)
의 시간 복잡도를 가진다.실제 사례를 연결 리스트로 구현할 경우, 알맞은 예는 어떠한 것들이 있는가?
프로그래밍에서 해싱(Hashing)이라는 용어는 어떻게 정의할 수 있는가?
해시 함수의 세 가지 특징은 무엇인가?
해시 충돌은 무엇인가? 그리고 그것을 해결할 수 있는 방법은 무엇이 있는가?
해시 테이블에서 다음 용어는 무엇을 의미하는가?
key
, value
쌍으로 구성되어 있음해시 테이블에서 값이 저장되는 공간을 어떻게 배열만을 이용해서 디자인할 수 있는가?
해시 테이블을 구현할 때 bucket을 무엇으로 구현해야 하는 건지 잘 몰랐어서 객체로 구현해서 제출했지만, 시간날 때 연결 리스트인 배열로 구현을 해봐야겠다.