Transcript adatszerkezetek - mezogazd
3. LOGIKAI ADATSZERKEZETEK
1. Lineáris 2. Tömb 3. Lista 4. Verem (LIFO) 5. Sor (FIFO) 6. Táblázatok Forrás:
Simon Gyula Számítástechnika középiskolásoknak
Összeállította: Sashalmi Tibor
A programok különböző
típusú adatokat
dolgoznak fel. Az adattípus a következőktől függ:
1. Belső ábrázolás
, - amely az adott adattípusra jellemző
2. Értékkészlet
– vehet fel.
az adott adattípusú változó milyen értékeket
3. Műveletek
változón?
– Milyen műveleteket lehet végezni az adott típusú A probléma megoldás során több adattal is dolgozunk. Ezek az adatok általában egymástól nem függetlenek, logikailag összefüggnek. Ezek az összefüggések az
adatszerkezetek
.
3.1 Lineáris adatszerkezet
Ez egy általános jellegű adatszerkezet.
A lineáris adatszerkezet az alábbiakkal jellemez hető: 1. Van egy első és egy utolsó eleme 2. Az ezeken kívüli elemeknek létezik megelőzője, és rákövetkezője.
3. Az első elemnek csak rákövetkezője van, az utolsónak csak megelőzője.
3.2 Tömb
A tömb azonos típusú adatok sorozata.
többi elem helyét az elsőhöz viszonyíthatjuk.
A tömbök-nél a logikai szerkezetet az adatelemek egymás-hoz viszonyított elhelyezkedése adja. Így nyilván az első elem kitüntetett helyzetű, hiszen a – –
(vektor)
Léteznek még három-, négy-, stb. dimenziós tömbök is, de ezek ritkábban fordulnak elő.
3.3 Lista
A
tömbelemek
tárolási módja a memóriában fix méretű és szekvenciális. A program futása közben nem változtatható. A törlés és beszúrás műveletet nehéz elvégezni.
A
lista
adatszerkezetben az elemek sorrendje szintén jól meghatározott, de az egyes elemek a memóriában nem biztos, hogy ugyanilyen sorrendben helyezkednek el.
3.4 Verem (LIFO)
(1 dia) A verem egy olyan lineáris adatszerkezet, amelynek mindig csak az utolsó elemével lehet műveletet végezni.
– Új adat beírása utolsó elemként – Az utolsó elem kiolvasása, egyúttal az elem törlődik Szemléletesen az utolsó elem a verem tetejére kerül. Ezt vesszük ki elöször. És ha kivesszük az utolsó elemet ( az elsőként berakott) is, akkor kiürül a verem. Ezt a feldolgozási módot hívják
LIFO
–nak (
L
ast-
I
n-
F
irst-
O
ut : utoljára be- először ki.
3.4 Verem (LIFO)
A verem legfontosabb alkalmazási területe az eljáráshívás: Program 1 2 3 4 5 6 A rútin „A” eljárás 7 8 9 10 11 12 B rútin „B” eljárás 13 14 15 16 17 18
Cím 11
Cím 4
3.5 Sor (FIFO)
Olyan lineáris adatszerkezet, amelynek mindig a legelső elemével lehet műveletet végezni.
1. Új elem beírása utolsó elemnek.
2. A legelső elem kiolvasása, egyúttal ez az elem tölődik.
Az adatokat sorba kell állítani. Ezt a feldolgozási módot
FIFO
- nak nevezik (
F
irst –
I
n –
F
irst -
O
ut: elsőként be - először ki).
Tipikus alkalmazási terület a nyomtatási sor.
3.6 Bináris fa
A fagráf egy olyan összefüggő gráf, amelyben nin csen kör. A fa adatszerkezetben az egyes szögponto kat összekötő élek irányítottak lesznek.
Kiválasztunk egy szögpontot, ez lesz a a fa gyökéreleme. Ezután a gyökérelemtől éleket húzunk a szomszédos szögpotokhoz, ezekből újra a velük szomszédos szögpontokhoz, stb.
Azokat a fa adatszerkezeteket ahol az eágazási elemből
3.7 Táblázatok
A táblázat tulajdonképpen egy függvénykapcsolat össze tartozó értékek között. Adatelem a következőképpen néz ki: Argomentum érték Az argomentum és az érték is állhat több mezőből. A táblaelemeket általában az argumentumuk alapján szokták keresni, nevezhetjük ezt tartalom szerinti keresésnek
VÉGE
Logikai adatszerkezetek
3.2.1 Egydimenziós tömb (vektor)
A legegyszerűbb tömb típus. Az egyes elemekre egy számmal, az index segítségével hivatkozha tunk. Az index az mutatja hogy az elem hányadik a tömb elemek között.
Például turbó Pascal esetén a deklaráció formája:
Var tomb : array [1…100] of integer A tömb neve Az indexek lehetséges értékei elemtípus
Ennek a tömbnek a 6.eleme:
tomb[6]
A tömbelemek a memóriában egymás után helyezkednek el, az
3.2.2 Kétdimenziós tömb
(1.dia) Itt az elemek egy táblázatban helyezkednek el. Pl: A 11 A 21 A 31 A 41 A 12 A 22 A 32 A 42 32 A 13 A 23 A 33 A 43 A 14 A 24 A 34 A 44 A 51 A 52 A 53 A 54 első index A kétdimenziós tömb logikailag sorokból, és oszlopokból sorindex szám az oszlop sorszáma.
második index oszlopindex
3.2.2 Kétdimenziós tömb
(2.dia) Például a Turbo Pascal – ban a deklaráció formája:
var A: array [1..5, 1..4] of char;
Az a A 32 – re való hivatkozás: A[3,2].
A memóriában az elemek általában sorfolytonosan helyez kednek el. Az elemek sorrendje az előző példákon szem léltetve:
A 11 A 12 A 13 A 14 A 21 A 22 A 23 A 24 A 31 A 32 A 33 ... stb.
3.3.1 Egyirányú láncolt lista
(1.dia) A listaelemei a következő szerkezetűek: adat mutató A mutató a következő elem címét tartalmazza. Az elemek összeláncolása ezeknek a mutatóknak a segítségével történik.
listafej 1.elem Cím 2 2.elem Cím 3 3.elem 000 A lista tartalmaz két speciális elemet. - Listafej - Végelem
3.3.1 Egyirányú láncolt lista
(2.dia) Két fontos művelet a kővetkezőképpen végezhető el: – Beszúrás : Egy elem beszúrásához elegendő az előző elem mutatójának megváltoztatása.
listafej 2.elem Cím 3 3.elem 000 újelem - Törlés: Egy elem törléséhez is az előző elem mutatóját kell megváltoztatni .
listafej 2.elem Cím 3 3.elem 000
3.3.2 Kétirányú láncolt lista
listafej 1.elem
Cím lf Cím 2 2.elem
Cím 1 Cím 3 3.elem
Cím 2 Cím 4 Ha az egyes lista elemeket még egy résszel kiegészít jük, akkor
kétirányú lán colt listát
kapunk. A lista elemek három részből áll nak: - információs rész - előző elem címe - következő elem címe 4.elem
Cím 3 000