Я пытаюсь понять, как преобразовать метод добавления класса хеш-таблицы, реализованный с помощью квадратичного зондирования, в качестве метода решения конфликтов для использования объединенного хэширования. Я знаю, что это связано со связанными списками, потому что я новичок с хэш-таблицами. Я не уверен, с чего начать.Хэш-стол с коалесцированным хешированием
Вот метод добавь в вопросе,
public boolean add(AnyType x) {
int currentPos = findPos(x);
if (isActive(array, currentPos))
return false;
if (array[currentPos] == null)
occupied++;
array[currentPos] = new HashEntry(x, true);
currentSize++;
modCount++;
if (occupied > array.length/2)
rehash();
return true;
}
Если кто-то может показать мне, как этот метод может быть преобразован для использования коалесцированного хэширования я бы очень признателен.
Это должно быть использование C? Язык, с которым я работаю, - это Java. Хотя это выглядит правильно для C, я не знаю, что делать с «struct node». Можете ли вы представить пример Java? – Nic
, поэтому в java вместо struct node * вам нужно ввести тип массива, который у вас есть. например это может быть массив объектов «Узла», к которым у него есть доступ к следующему. Вы можете посмотреть http://crunchify.com/how-to-implement-a-linkedlist-class-from-scratch-in-java/, 'private class Node', чтобы узнать, как может быть тип массива + как изменить его -> рядом с getNext(). –
Чтобы добавить к предыдущему комментарию: я не думаю, что у меня есть связанный список из прошлого, как вы заявили. У меня есть только «массив» класса HashEntry. – Nic