Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

1 Speciális Listák: Sor A sor adatszerkezet olyan speciális lista, amelyet a műveletei definiálnak.  1. ACCESS HEAD  3. POP itt GET-nek nevezzük  5.

Hasonló előadás


Az előadások a következő témára: "1 Speciális Listák: Sor A sor adatszerkezet olyan speciális lista, amelyet a műveletei definiálnak.  1. ACCESS HEAD  3. POP itt GET-nek nevezzük  5."— Előadás másolata:

1 1 Speciális Listák: Sor A sor adatszerkezet olyan speciális lista, amelyet a műveletei definiálnak.  1. ACCESS HEAD  3. POP itt GET-nek nevezzük  5. INJECT itt PUT-nak nevezzük FIFO adatszerkezetnek is nevezik (First In First Out) Ennek megfelelően a sorba az elemek az érkezésnek megfelelő sorrendben kerülnek, az újak mindig a sor végére kerülnek (PUT művelettel). Feldolgozni a sor első elemét szokás (ACCESS HEAD vagy GET), ami legtöbbször egyben fizikai törlést is jelent (GET) 19:16:20

2 2 Speciális Listák: Sor Sorba történő írás művelete, PUT művelet, az olvasás (fizikai törlés) művelete a GET művelet. Logikai törlés nincs Rendezés nincs értelmezve Keresés nincs értelmezve Elérés: Csak az első elemet tudjuk elérni 19:16:20

3 3 Sorok ábrázolása Szétszórt ábrázolás :  egyirányban láncolt listával,  két segédmutatóval (fej és vége mutató)  Feldolgozás a fejmutató által hivatkozott elemet  Bővítés: az utolsó mutató után a mutatók átállításával adat1 adatn NIL adat2 Fej Vége adat3 adat4 19:16:20

4 4 Sorok ábrázolása Folytonos ábrázolás :  Folytonos reprezentációk mindegyike egy vektorban tárolja a sor elemeit  Fontos a sor elejének és végének jelzése 1. Fix kezdetű sor 2. Vándorló sor 3. Ciklikus sor 19:16:20

5 5 Sorok ábrázolása Fix kezdetű sor  A sor első eleme a vektor első tárhelyén helyezkedik el, az utolsó elem mutatója v.  Üres a sor: v=0  Tele van a sor: v=n  Új elem beírása: v+1-edik helyre kerül, majd v eggyel megnő.  Elem törlése: Nehézkes, sok adatmozgatással jár. A sor első elemét dolgozzuk fel, a sor eleje pedig mindig ugyanott kell, hogy legyen, ezért törlés után a többi elemet rámozgatjuk az előző pozícióra. v értéke pedig eggyel csökken. 19:16:20

6 6 Sorok ábrázolása Vándorló sor  A sokszori adatmozgatást küszöböli ki  Elvetjük azt a megszorítást, hogy az első elem az első helyen álljon. Megengedjük, hogy az első elem helye vándoroljon.  Ehhez segédmutatók, e és a szokásos v szükséges  Üres a sor: e=v=0  Tele a sor: e=1, v=n  Új elem bekerülése: A v mutatót követő pozícióra kerül be, ha a sor nincsen tele.  Bővítéskor (PUT-nál) előfordulhat, hogy a v az utolsón áll, de az e vándorlása miatt a sor nincs tele: ilyenkor (csak ilyenkor), adatmozgatást hajtunk végre: A legelső pozícióig toljuk a sort előre. 19:16:20

7 7 Sorok ábrázolása Ciklikus sor: Az adatmozgatást eddig még nem küszöböltük ki teljesen. A ciklikus sorban az elejét és végét jelző mutató vándorlását a határokon keresztül is megengedjük. –Üres a sor: e=v=0 –Tele a sor: e=1 és v=n, vagy e = v+1. –Új elem: szabályokat figyelembe véve, ha a sor nincs tele, akkor a v+1-edik helyre kerül, (esetleg v visszaugrik az elejére). –Törlés: e mutató által mutatott elem, majd e=e+1. POPPUT (2x) 123 ev n 123 ev 19:16:20

8 8 Műveletek sorokkal Létrehozás:  Az üres sort hozzuk létre Bővítés:  Mindig a végén, a PUT művelettel Törlés:  A sor első elemére vonatkozik (GET), az első elem elérése és törlése (ACCESS HEAD + POP) Csere, Rendezés, Elérés, Keresés, Bejárás  Nincs, ill. nem értelmezett Feldolgozás  Definíciója szerint 19:16:20

9 9 A sor adatszerkezet használata Sorok felhasználása az informatikában  Pufferek megvalósítására (termelő – feldolgozó)  A hierarchikus adatszerkezeteket a bejáráskor sorokba képezzük le 19:16:20

10 10 Speciális sorok Ezek sorokból képzettek. Megőrzik a sor tulajdonságait és továbbiakkal egészülnek ki Két végű sor  Olyan sor, amelynél mind a hat speciális lista művelet megengedett  Ez logikailag hasonlít két db aljánál összeragasztott veremre RPUTRGET GETPUT 19:16:20

11 11 Két végű sor A két végű sornak további származtatott szerkezetei léteznek Input korlátozott kétvégű sor:  A hagyományos GET és PUT művelet mellett az RGET megengedett, de az RPUT nem. Output korlátozott kétvégű sor  Az előző párja  Olyan kétvégű sor, amelyben a GET és a PUT műveletek mellett az RPUT megengedett az RGET nem Ezen speciális sorok reprezentációja folytonos és szétszórt is lehet, de két irányban láncolt listával a legjobb megvalósítani őket 19:16:20

12 12 Prioritásos sor –Olyan sor, amelyben az adatelemek egy részéhez prioritás értéket rendelünk (1…n), majd a sorban az adatelemek prioritás értékük szerinti növekvő sorrendben helyezkednek el. –Feldolgozás: Először a legmagasabb prioritású (legkisebb prioritás érték) elemeket dolgozzuk fel, ezután jöhet a következő legmagasabb szint. A prioritás értékkel nem rendelkező elemek közül csak akkor dolgozhatunk fel, ha már nincs prioritással rendelkező elem a sorban. 19:16:20

13 13 Prioritásos sor –Ugyanezt az eredményt adja, ha olyan sorok együttesére gondolunk, ahol minden sorhoz tartozik egy prioritás érték. Ugyanakkor minden adatelemhez is tartozik egy-egy prioritás érték. Az adatelemek mindig a nekik megfelelő prioritási sorban tartózkodnak. A jelöletlen sor: A prioritással nem rendelkező elemek sora. 1 2 : : n 19:16:20

14 14 Sztring Ez egy szekvenciális adatszerkezet. Olyan lista, amelynek elemeit egy ABC szimbólumai alkotják. Olyan sztringekkel fogunk foglalkozni, melyek elemei karakterek lesznek. A sztringeken értelmezhetők a lista alapműveletei  Bármely karakter elérése  Részsztring képzés  Konkatenáció (összefűzés) Sztringek lényeges jellemzője a hosszuk Feldolgozásuk során fontos az üres sztring fogalma 19:16:20

15 15 Sztring adatszerkezet műveletei Létrehozás  Megadjuk (felsoroljuk) a sztring összes karakterét Bővítés  Elején, végén, bármely két karakter között részsztring beillesztésével, majd konkatenálásával Törlés  Részsztringet lehet törölni Csere  Részsztringet részsztringgel Keresés  Részsztring keresése (mintaillesztéssel) 19:16:20

16 16 Sztring reprezentációja Szétszórt és folytonos is lehet Szétszórt  A listafejben található, a sztringre vonatkozó hossz információ és  az alábbi technikák lehetségesek Egy-egy karakter egy listaelem (rossz helykihasználás, a mutató nagyobb tárhelyet használ, mint a karakter). Változó hosszúságú listaelemekkel. Egy-egy listaelem ilyenkor több karaktert tartalmaz (részsztringek). Ekkor a listafejben a részsztringek hosszáról is szükséges információ. Nehéz nagy részsztringeket kezelni, ezért inkább folytonosan szokták ábrázolni. 19:16:20

17 17 Sztring reprezentációja Folytonos  Minden sztringet azonos hosszú tárterületen tárolunk. Ha szükséges, a ki nem használt tárterületeket speciális karakterrel töltve fel.  Változó hosszon, minden sztring előtt megadva annak hosszát. A lefoglalt tárhelyek közül egy szám információ lesz az első. 4alma05körte2fa alma körte00fa :16:20

18 18 Sztring reprezentációja Folytonos  Folyamatos tárolásnál a sztringek végén speciális karaktert (végjel) alkalmazunk.  Folyamatosan, hosszúságinformáció és végjelek nélkül. Kiegészítésként használunk egy nyilvántartást a sztringek kezdőcímével és hosszával. alma00körte0fa0 almakörtefa :16:20

19 19 Mintaillesztés Sztringek felhasználása: Formális nyelvek, formális rendszerek, szövegszerkesztő programok, hypertextek. Mindegyik területen fontos a részsztring keresés, vagyis a mintaillesztés.  Alapsztring: A=a 1 a 2 a 3 …a n  Minta: P=p 1 …p m (általában n>>m, jobb lenne: n~m) Kérdés: a rövid minta a hosszú alapsztringben megtalálható-e, ha igen hol, hányszor, és azok hol. Több tucat, (több száz) mintaillesztési algoritmus létezik. 19:16:20

20 20 Brute Force mintaillesztés Mezítlábas, hétköznapi algoritmusok. Nem nagyon hatékonyak.  Összehasonlítja az alapsztring első karakterét a minta első karakterével  Ha egyezést talál, mindkét sztringben tovább lép és azokat hasonlítja össze (második karaktert a második karakterrel).  addig, amíg el nem érte és össze nem hasonlította a P utolsó karakterét is, vagy pedig valahol eltérést nem talál.  Ha P-t végig összehasonlította és egyezést tallt, akkor P benne volt az alapsztringben. 19:16:20

21 21 A bacbababaabcbab ↕ P ababaca Brute Force mintaillesztés 19:16:20

22 22 Brute Force mintaillesztés  Az esetek többségében azonban valahol eltérést talál.  Mit tegyünk ilyenkor?  Visszaugrunk a minta első karakterére  Az alapsztring legutóbbi összehasonlításának kezdő karakterét követő karakterrel újrakezdjük a folyamatot.  A keresés véget érhet úgy is, hogy Addig-addig kezdjük újra a keresést, amíg el nem jutunk az alapsztring végére, és ott is eltérés van. Ekkor jeleznünk kell, hogy a minta nincs benne az alapsztringben. 19:16:20

23 23 A bacbababaabcbab ↕↕ P ababaca Brute Force mintaillesztés 19:16:20

24 24 A bacbababaabcbab ↕ P ababaca Brute Force mintaillesztés 19:16:20

25 25 A bacbababaabcbab ↕ P ababaca Brute Force mintaillesztés 19:16:20

26 26 A bacbababaabcbab ↕↕↕↕↕↕ P ababaca Brute Force mintaillesztés 19:16:20

27 27 A bacbababaabcbab ↕ P ababaca Brute Force mintaillesztés 19:16:20

28 28 A bacbababaabcbab ↕↕↕↕ P ababaca Brute Force mintaillesztés 19:16:20

29 29 A bacbababaabcbab ↕ P ababaca Brute Force mintaillesztés 19:16:20

30 30 A bacbababaabcbab ↕↕ P ababaca Brute Force mintaillesztés 19:16:21

31 31 Brute Force mintaillesztés Function MEZÍTLÁBAS (A,P) 1. n  hossz(A) 2. m  hossz(P) 3. i  j  0 4. While i

32 32 Brute Force mintaillesztés  Mezítlábas algoritmus a léptetés után elfelejt minden információt az előzőleg összehasolított karakterekről  Így előfordulhat, hogy újra és újra összehasonlítja az első karakterét a minta sztring minden karakterével  Ha megfelelően felhasználnánk a korábbi összehasonlításokból nyert információkat, soha nem kellene újra vizsgálni az alapsztring azon karaktereit, melyek már illeszkedtek a p minta egyik karakterére 19:16:21


Letölteni ppt "1 Speciális Listák: Sor A sor adatszerkezet olyan speciális lista, amelyet a műveletei definiálnak.  1. ACCESS HEAD  3. POP itt GET-nek nevezzük  5."

Hasonló előadás


Google Hirdetések