Asztd "szótár", "fájl" és "betöltött fa"
A mű címe: ATD "SZERZŐDÉS", "TÁJÉKOZTATÓ" ÉS "FEDÉLZETT FÁK" TANULMÁNYA
Terület: Informatika, Cybernetics és Programozás
Leírás: Néha szükség van egy elem jelenlétének ellenőrzésére ebben a készletben. A szótár háromféle módon hajtható végre: 1 rendezett vagy nem rendezett összekapcsolt listák segítségével; 2 bináris vektorok használatával, ha egy adott csoport elemei egész számok; 3 A tömb utolsó hosszú cellájával mutatós mutatóval rögzített hosszúságú tömb használatával, ha a készlet mérete nem haladja meg a tömb meghatározott hosszúságát, különben a hivatkozott listákat használják. A szegmens kezdeti értéke mindig kisebb, mint elemeinek értékei.
Fájlméret: 341 KB
A munkát letöltötték: 21 ember.
Laboratóriumi munka № 5
"ATD", "FILE" és "LOADED TREE" TANULMÁNY »
A munka célja: az ADD "szótár", "fájl" és "betöltött fa" kivizsgálása és tanulmányozása.
A probléma a munka: elsajátítsák a készségeket a rajz struktúrák ATD „szótár”, „fájl”, „trie”, és írásban a tanulmány e struktúrák bármilyen programozási nyelv programokat.
- a laboratóriumi leírás leírásának tanulmányozása;
- a tanár utasításai alapján kifejleszteni az egyik struktúrát: ADD "szótár", "fájl" vagy "betöltött fa";
- írjon egy programot;
- debug a program;
- megoldja a problémát;
- jelentést készít.
szótár # 150; ez egy absztrakt készlet. Ezek a halmazok tárolják az aktuális objektumokat rendszeres beillesztéssel vagy egyesek eltávolításával. Időnként szükségessé válik egy elem jelenlétének ellenőrzése ebben a készletben.
A szótár háromféle módon hajtható végre:
1) válogatott vagy nem rendezett összekapcsolt listákon keresztül;
2) bináris vektorok használatával, ha egy adott készlet elemei egész számok;
3) rögzített hosszúságú tömb használatával mutatóval a tömb utolsó töltött cellájához, ha a készlet mérete nem haladja meg a tömb meghatározott hosszúságát, egyébként hivatkozott listákat használnak.
Az alábbiakban példázza a szótár végrehajtását nem rendezett linkelt listákon keresztül (lásd az 5.1. Ábrát). Van egy sor szegmens. Minden szegmensnek van egy kezdő értéke és egy mutatója az első mondathoz, amit más blokkok követtek el a lista struktúrája formájában. A szegmens kezdeti értéke mindig kisebb, mint a blokkok elemeinek értékei. A következő szegmens esetében a kezdeti érték nagyobb, mint az előző szegmens kezdeti értéke. A példákban a szótárelemek időszakos beillesztése és törlése nincs megadva. Ezeket az anyagokat önállóan lehet szétszedni a korábbi laboratóriumi munkákban korábban eljuttatott anyag alapján.
Ennek a "szótár" -szerkezet típusának (lásd az 5.1. Ábrát) a következőképpen ábrázolható:
writeln ('Írja be a blokk elemet');
ha q<> nil, majd q ^ .ext: = p;
Ha egy adott elemet keres a "szótárban", akkor a Poisk operátort kell használnia. A "szótár" keresési elve, amelyet a kapcsolódó, nem rendezett listákon keresztül valósít meg, hasonlít egy indexszekvenciájú keresésre a táblázatban. Először egy olyan intervallumot keresünk, amelyben a kívánt elem feltételezhetően megtalálható. A "szótár" # 150; ez a szegmens. Ezután az intervallum elemei között a keresett elemet az elemek egymás utáni keresésével keresik. A "szótár" # 150; ez a blokkok listája.
ha az x_element_of_segment then writeln ('Element található az egyik szegmensben!');
ha x_in_segment akkor
ha x_in_blok, majd írja ("Az elem található a blokkban!")
else writeln ('Nincs elem a blokkban!')
A Poisk utasítás a következőket is használja:
1) a szegmens x_element operátora. amely ellenőrzi, hogy a kívánt elem a szegmens kezdeti értéke
j: = 0-tól B-1-ig
ha x = s [j] .element, akkor x_element_of_segment: = Igaz;
2) az operátor x_ in_segment. amely meghatározza azt a szegmenst, amelyben az elem