adatszerkezetek - mezogazd

Download Report

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 – –

Egydimenziós tömb

(vektor)

Kétdimenziós tömb

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.

– Egyirányú láncolt lista

– Kétirányú láncolt lista

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

vissza

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

vissza

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.

vissza

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

vissza

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

vissza

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

vissza