james
james

Reputation: 53

What does 'x' here mean?

CHAINED-HASH-INSERT(T,x)
 Insert x at head of list T[h(x.key)]

CHAINED-HASH-SEARCH(T,k)
 Search for an element with key k in list T[h(k)]

CHAINED-HASH-DELETE(T,x)
 Delete x from the list T[h(x.key)]

I am studying hash tables right now and I am not able to understand what exactly x means in the attached pseudocode with this question. The three hash table dictionary functions are being implemented here to insert, search and delete an element from the table. Now I understand what x.key means but the problem is, but what exactly is x in the data that has to be inserted into the table. Please can you help me with an example. I am currently trying to implement it using C. Also h() is the hash function.

Upvotes: 0

Views: 115

Answers (1)

mhawke
mhawke

Reputation: 87084

In practice it will be a struct for key/value pairs. x.key is the key that is used for the hashing. The value might be named x.value, or x.data or something like that. There must be a definition for the type of x somewhere, but it's name is not important to understand the algorithm and to implement it. You might use a void pointer to represent the value so that data of any kind could be stored in the hash table.

So x represents the data structure that is stored in the hash table's collision resolution list, which is where the key and value are stored.

Update

I have found this familiar looking reference which explains it all: Introduction to Algorithms

Upvotes: 1

Related Questions