Optimeerimine Eeltoodud näites tuleb iga järgmise kaugusega tippude ploki puhul kogu kauguste massiiv uuesti läbi käia. Väikese elementide arvu puhul pole sellest probleemi. Kui aga tippude arv kasvab kümnetesse tuhandetesse (nt. veebilehestiku puhul lehekülgede arv), siis ilmneb, et arvuti teeb hulga asjatut tööd. Veidi järele mõeldes selgub, et edasi on põhjust minna vaid nendest tippudest, kuhu viimatisel kontrollimisel jõuti. St., et nt. 3 serva kaugusel asuva tipu juurde on võimalik pääseda vaid 2 serva kaugusel asuvast tipust. Nii et kui parajasti otsitakse algpunktist ühe serva kaugusel olevate tippude kaudu pääsetavaid tippe, siis on leitud tipud põhjust meelde jätta. Kui 1 serva kaugusel olevad tipud läbi vaadatud, siis järgmisel ringil otsides võib uusi tippe leida vaid viimati 2 serva kaugusele märgitud tippude kaudu. Meeldejätmiseks on mitu võimalust. Üheks mooduseks oleks näiteks kaks massiivi. Ühes on kirjas parajasti vaadatavad tipud. Teises aga vaatamisel leitud tipud. Kui parajasti vaadatavad tipud otsa saavad, siis tuleb edasiminekuteid otsida leitud tippude hulgast. Nii võib leitud tippude massiivi muuta uuritavate tippude massiiviks ning sealtkaudu edasiminekuteid uurida. Uued leitud tipud paigutatakse siis jällegi eelnevalt tühjendatud leitud tippude massiivi. Sama töö teeb ära laiemaltki kasutatav võimalus nimega "järjekord". Et samas järjekorras, kui siia elemente lisatakse, samas järjekorras ka võetakse. Et kes seisab esimesena sabasse, saab ka esimesena oma kauba kätte. Nii on võimalik panna leitud tippe järjekorra lõppu ning uusi uuritavaid tippe võtta järjekorra eest. Nii on kindel, et lähemad tipud on enne läbi uuritud, kui kaugemate tippudeni jõutakse. Sest lähemad tipud satuvad lihtsalt varem järjekorda. Ülesandeid * Koosta tühi täisarvude massiiv hoidmaks leitud ja uurimist ootavate tippude järjekorranumbreid. Massiivi pikkuseks olemasolevate tippude arv, sest rohkem kui korra pole siin näites mõtet ühte tippu uurida - tema kaugus algpunktist on juba teada. * Loo muutujad "uurimisalgus" ja "uurimisots". Esimene tähistab järgmisena välja võetava ning teine viimati pandud elemendi järjekorranumbrit. Säti väärtused algul nõnda, et järjekord oleks tühi. * Loo käsklus järjekorda väärtuse lisamiseks. Selle tulemusena suureneb "uurimisots" ning vastavale kohale massiivis pannakse lisatud element. * Loo käsklus järjekorra algusest väärtuse küsimiseks koos eemaldamisega - "uurimisalgus" suureneb ühe võrra. * Loo käsklus järjekorras olevate elementide väljatrükiks. * Loo käsklus kontrollimaks, kas järjekorras leidub veel elemente. * Katseta testprogrammi abil arvude lisamist järjekorda ning eemaldamist sealt. * Täienda eelnevalt loodud algtipust kaugust määravat programmi nõnda, et uute seotud tippude otsimisel võetakse uuritavad tipud järjekorrast ning lisatakse leitud tipud järjekorda. Töö lõppeb, kui järjekord saab tühjaks.