Цитата:
Сообщение от lmikle
Код:
function Hash(S : String; HashSize : Integer) : Integer;
var
Sm : Int64;
begin
Sm := 0;
For I := 1 To Length(S-1) Do
Sm := (Sm + Ord(S[i])) * 31;
Result := (Sm + Ord(S[Length(S)])) mod HashSize;
end;
Далее создаешь массив. Добавление - вычисление хэша (т.е. получение индекса) и помещение в нужную ячейку данных. Ну тут еще коллизии надо разрешить, но это делается просто сдвигом по массиву. Поиск аналогично. С удалением сложнее. Там надо делать спец признак, иначе есть возможность потерять некоторые строки.
|
Где-то из этой области? Есть где по-подробнее почитать?
__________________
Програмистами не рождаются, ими становятся!
|