3.3.5 · HinglishHashing

Deletion in open addressing — tombstone markers

1,755 words8 min readRead in English

3.3.5 · Coding › Hashing


Naive deletion search ko kyun tod deta hai?

Poora insert/search invariant yeh hai:

Ab maan lo hum slot ko EMPTY set karke delete karte hain:


Tombstone ise kaise fix karta hai

Rules jo sab kuch consistent rakhti hain:

Figure — Deletion in open addressing — tombstone markers

Cost: tombstone accumulation

Cure: rehashing. Jab tombstones bahut zyada ho jayein (e.g. ek threshold jaise exceed kare), table rebuild karo: sirf OCCUPIED entries ko ek fresh array mein reinsert karo, saare tombstones drop karo. Yeh ko true live load factor par reset kar deta hai.


Forecast-then-Verify

Recall Forecast: m=5, h(k)=k mod 5, linear probing. 5,10,15 insert karo (sab 0 par hash karte hain). Phir 10 delete karo. 15 ko search karo — kitne probes, aur har slot kya read karta hai?

Insert: 5→slot0, 10→slot1, 15→slot2. Table [5 10 15 _ _]. 10 delete karo → tombstone: [5 † 15 _ _]. 15 search karo: slot0 probe karo (=5, nahi), slot1 (=†, jaari rakho), slot2 (=15 ✔). 3 probes. Tombstones ke bina, slot1 EMPTY search ko 2 probes par rok deta aur galat "not found" report karta.


Common mistakes


80/20 — must-keep ideas

  1. EMPTY ka matlab hai "searching band karo"; EMPTY karne se delete chains tod deta hai.
  2. Tombstone (DELETED) = "key chali gayi, lekin probing jaari rakho."
  3. Search DELETED ko occupied ki tarah treat karta hai; insert ise reuse kar sakta hai (lekin duplicates ke liye aage scan karo).
  4. Tombstones bloat karte hain → bahut zyada hone par rehash karo.

Flashcards

Open addressing mein slot ko EMPTY set karke delete kyun nahi kar sakte?
EMPTY ka matlab hai "probe sequence khatam," toh beech ke slot ko blank karna baad ki searches ko chain mein jaldi rokwa deta hai aur keys ko missing report karta hai.
Tombstone marker kya hai?
Ek special DELETED slot state jiska matlab hai "ek key yahan se hatayi gayi hai, lekin probing jaari rakho" — yeh search chain ko preserve karta hai.
SEARCH tombstone ko kaise treat karta hai?
Ek occupied slot ki tarah — yeh probing jaari rakhta hai; sirf EMPTY par ya key milne par rukta hai.
INSERT tombstone ko kaise treat karta hai?
Reusable free space ki tarah: pehla tombstone yaad rakho, lekin yeh ensure karne ke liye ki koi duplicate nahi hai EMPTY tak scan karte raho, phir key yaad kiye gaye tombstone par rakho.
Open addressing mein deletion ke saath teen slot states kya hain?
EMPTY, OCCUPIED, DELETED (tombstone).
Effective load factor kya hai aur yeh kyun matter karta hai?
; search cost isi par depend karti hai, toh tombstones lookups slow karte hain chahe live keys kam hon.
Accumulated tombstones se kaise chutkara milta hai?
Rehash/rebuild: sirf OCCUPIED entries ko fresh table mein reinsert karo, saare tombstones drop karo; reset ho jaata hai.
Insert mein pehle tombstone par key rakhne ki jagah aage scan karna kyun zaroori hai?
Key probe chain mein aage pehle se exist kar sakti hai; jaldi rukne se duplicate insert hone ka risk hai.

Recall Feynman: ek 12-saal ke bachche ko explain karo

Ek row of lockers imagine karo aur apna samaan dhundhne ka ek rule: "locker 3 se shuru karo; agar yeh tumhara nahi hai, agla try karo, aur agla — jab tak tumhara na mile YA ek empty locker na mile, jiska matlab hai ruko, tumhara samaan yahan nahi hai." Ab agar koi tumhare trail ke beech ek locker khali kar deta hai, tum us empty locker se takraoge aur bahut jaldi quit kar doge, agले locker mein apna samaan miss karte hue. Toh khali chhodne ki jagah, hum ek chhoti "yahan tha" sticky note (tombstone) lagate hain. Jab tum sticky note dekhte ho tum sochte ho "aage chalte raho!" aur tumhe apna samaan mil jaata hai. Kaafi sticкies pile up hone ke baad, trails lambi ho jaati hain, toh kabhi kabhi hum poori row saaf karte hain aur sab kuch wapas se neat tarike se rakhte hain.


Connections

  • Open Addressing — yeh deletion problem jis family ki hai.
  • Linear Probing — examples mein use ki gayi probe sequence.
  • Load Factor and Rehashing — kyun rebuilds force karta hai.
  • Separate Chaining — alternative jahan deletion trivially O(1) hai (bas unlink karo).
  • Hash Functions jo har probe shuru karta hai.

Concept Map

uses

stops at

broken by

punches

causes

fixed by

adds

search

insert

preserves

accumulates

measured by

Open addressing

Probe sequence

Search-stops-at-EMPTY invariant

Naive delete sets EMPTY

Hole in probe chain

Search gives up too early

Tombstone DELETED marker

Three slot states

Keep probing past DELETED

Treat as free slot

Long probe sequences

Effective load factor