해시 테이블에서 공개 주소 지정을 이해하려고하지만 문학에서 대답하지 않은 질문이 하나 있습니다. 2 차 프로빙이 사용되는 경우 해시 테이블의 요소 삭제와 관련됩니다. 그런 다음 제거 된 요소가 센티넬 요소로 대체됩니다. 그런 다음 get() 작업은 추가 작업이 필요하다는 것을 알고 add() 메서드는 찾은 첫 번째 센티넬을 덮어 씁니다. 그러나 이미 해시 테이블에 있지만 탐색 경로의 센티넬 뒤에있는 키가있는 요소를 추가하려면 어떻게됩니까? 이미 인스턴스에있는 값을 테이블에있는 동일한 키로 덮어 쓰는 대신에 add() 메서드는 센티넬을 덮어 씁니다. 그런 다음 해시 테이블에 동일한 키가있는 여러 요소가 있습니다. 메모리가 필요하고 해시 테이블에서 요소를 제거하면 그 중 첫 번째 요소 만 제거되므로 요소가 여전히 테이블에서 발견 될 수 있습니다 (즉, 제거되지 않음).해시 테이블 : 주소 지정 및 요소 제거 열기
그래서 센티널 요소를 교체하기 전에 삽입하려는 요소의 키에 대해 전체 프로빙 경로를 검색해야하는 것 같습니다. 나는 무엇인가 내려다보고 있냐? 이 문제는 실제로 어떻게 처리됩니까?
답변 해 주셔서 감사합니다. Pythons dictionairy가 공개적으로 사용한다는 말을 들었습니다. 그래서 나는 그것을 살펴볼 것입니다. – j0ker
@PaulBellora : 편집 해 주셔서 감사합니다! – palacsint