Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Хеш пошук

Реферат Хеш пошук





(aKey: string): integer; virtual ;//HESH-функція з можливістю перевизначення

function Add (aKey: string; found: byte): byte ;//Found :0-до ,1-перед, Повертає :0-без конфлікту, j-осередок

function Search (aKey: string; var aCount: integer): string ;//пошук елемента Hesh-таблиці

procedure DeleteAll ;//видалення всієї таблиці

Procedure SaveHesh (FileName: String) ;//збереження контейнера в файлі

Procedure LoadHesh (FileName: String) ;//завантаження контейнера з файлу

Procedure Extract (var aIndex: integer; var aCur: TItem) ;//Висновок: aIndex-текушего індекс масиву, aCur-поточний ел-т списку

end;


{***********************************}


var Hesh: TMas;

implementation

uses Main, SysUtils, Dialogs;


constructor TItem.Create (aNext: TItem; aKey: string);

begin

next: = aNext;

Key: = aKey;

end;


function TItem.Getnext: TItem;

begin

Result: = next;

end;


procedure TItem.SetNext (aNext: TItem);

begin

next: = aNext;

end;


Function TItem.GetKey: string;

begin

Result: = Key;

end;


{*************************************}


constructor TList.Create (aKey: String);

begin

Head: = TItem.Create (nil, aKey);

end;


function TList.AddFirst (aKey: string): boolean;

var Temp, Current, Previos: TItem;

begin

previos: = Head;

current: = Head.Getnext;

Temp: = TItem.Create (current, aKey);

Temp.next: = current;

previos.next: = Temp;

result: = true;

end;


function TList.AddLast (aKey: string): boolean;

var Temp, Current: TItem;

begin

// Внесення нового елемента в список

Current: = Head.Getnext;

Temp: = TItem.Create (Head.next, aKey);

Head.next: = Temp;

result: = true;

end;


function TList.GetHead: TItem;

begin

Result: = Head;

end;


{*************************************}


constructor TMas.Create (aKey: string);

var i: integer;

begin

for i: = +1 to 10 do mas [i]: = TList.Create (aKey);

end;


function TMas.HeshFunction (aKey: string): integer;// Hesh-функція

var x, i, j: integer;

begin

x: = 0;

for i: = +1 to length (aKey) do x: = ord (aKey [i]) + x;// Визначення значення рядка

j: = (x mod 10) +1;// Визначення елемента

result: = j;

end;


function TMas.Add (aKey: string; found: byte): byte;

var j: integer;

begin

j: = HeshFunction (aKey);

if Found = 0 then

begin

if mas [j]. Head.next <> nil then result: = j else result: = 0;

mas [j]. AddFirst (aKey);

end else

if found = 1 then

begin

if mas [j]. Head.next <> nil then result: = j else result: = 0;

mas [j]. AddLast (aKey);

end;

end;


function Tmas.Search (aKey: string; var aCount: integer): string;

var j: integer; Cur: TItem;

begin

// Пошук в списку

j: = HeshFunction (aKey);

aCount: = 1;

Cur: = mas [j]. GetHead.Getnext;

while (Cur <> nil) and (Cur.key <> aKey) do

begin

inc (aCount);

Cur: = Cur.next;

end;

if Cur = nil then

begin

result: = '0 ';

Exit;

end else

begin

result: = Cur.key;

exit;

end;

end;


procedure TMas.DeleteAll ;//видалення контейнера

var i: integer; Cur: TItem;

begin

for i: = 1 to 10 do

begin

cur: = mas [i]. Head.Getnext;

While Cur <> nil do

begin

mas [i]. Head.next: = Cur.next;

Cur.Destroy;

cur: = mas [i]. Head.next;

end;

end;

Hesh.Destroy;

Hesh: = nil;

end;


Procedure TMas.Extract (var aIndex: integer; var aCur: TItem) ;//Висновок: aIndex-текушего індекс масиву, aCur-поточний ел-т списку

begin

aCur: = mas [aIndex]. Head.next;

end;


Procedure Tmas.SaveHesh (FileName: String) ;//збереження контейнера в файлі

var Current: TItem; tf: TextFile; i: integer;

begin

AssignFile (tf, FileName),

rewrite (tf);

for i: = 1 to 10 do

begin

Current: = mas [i]. Head.Getnext;

while Current <> Nil do

begin

Write (tf, Current.key + ' '); p> Current: = Current.next;

end;

Writeln (tf);

end;

CloseFile (tf);

end;


Procedure...


Назад | сторінка 5 з 7 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Creation of control system by a personnel how to begin with a zero
  • Реферат на тему: The stylistic function of the English article
  • Реферат на тему: Organizational Function of Intonation in English and Ukrainian Languages
  • Реферат на тему: Procedure of preparation business-plan
  • Реферат на тему: Програмний комплекс для управління і формування керуючих команд мобільним р ...