Ahoj,
Nevíte jakym způsobem by šlo urychlit procházení spojového seznamu kde závisí na názvu položky?
příklad:
polozka = record
nazev : string;
dalsi : ^polozka;
end;
Položek není mnoho (kolem 500-5000), ale jsou velice často hledány právě podle názvu, takže je kolikrát nutné projet celý seznam...
Napadlo mě, že bych mohl udělat strom, který by se řadil v závislosti na názvu větví:
strom = record
nazev : string;
cislo : dword;
vlevo : ^strom;
vpravo : ^strom;
end;
Napřed by se podle názvu vypočítalo číslo (a = 1, b = 2, c = 3 ... => 'ahoj' = 1 + 8 + 15 + 10 => cislo := 34) a pokud by číslo bylo menší než číslo v kořenu stromu, pak by se hledalo vlevo a pokud by bylo větší, tak by se hledalo vpravo... Bohužel spousta slov může tvořit stejné číslo... a pak to má ještě jednu nevýhodu, a to že pokud jako první bude nějaký slovo s vysokým číslem, pak to bude stejný jako spojovej seznam, protože všechny slova budou vlevo...
Nevíte někdo nějakej lepší způsob jak zrychlit hledání?