Gráfok 2. Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék

Slides:



Advertisements
Hasonló előadás
Információs függvények
Advertisements

Készítette: Kosztyán Zsolt Tibor
KÉSZÍTETTE: Takács Sándor
EE/R adatmodell (Extended E/R) 1 Az objektum orientált szemlélet elterjedésével egyre nőtt az igény az olyan SDM (Semantic Data Model) modellek iránt,
Programozási alapismeretek 6. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 6.2/  Rekordok/struktúrák.
Illeszkedési mátrix Villamosságtani szempontból legfontosabb mátrixreprezentáció. Legyen G egy irányított gráf, n ponton e éllel. Az n x e –es B(G) mátrixot.
Illés Tibor – Hálózati folyamok
Algebrai specifikációk Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
Rekurzió (Horváth Gyula és Szlávi Péter előadásai felhasználásával)
Copyright, 2009 © Szlávi Péter A kupac és a prioritási sor típuskonstrukciók Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
Minimális költségű feszítőfák
Programozási alapismeretek 4. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 4.2/  A szöveg A szöveg.
Programozási alapismeretek 7. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 7. előadás2/  Sorozatszámítás.
Programozási alapismeretek 3. előadás
Programozási alapismeretek 10. előadás
Programozási alapismeretek 8. előadás. ELTE 2/  További programozási tételek További programozási tételek 
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Papp Róbert, Blaskovics Viktor, Hantos Norbert
Fák, bináris fák INFOÉRA Ez így 60 perc.
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.1/ Keresés Specifikáció:  Bemenet: N:Egész, X:Tömb[1..N:Valami]
ELTE Szlávi-Zsakó: Programozási alapismeretek 10.1/ Összegzés mátrixra Feladat: Egy mátrix elemeinek összege.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
2. A rekurzió mint típuskonstrukció Szlávi Péter ELTE Média- és Oktatásinformatikai Tanszék
Copyright, 1999 © Szlávi Péter Prioritási sor típuskonstrukció Szlávi Péter ELTE Informatika Szakmódszertani Csoport
Copyright, 1999 © Szlávi Péter Verem típuskonstrukció Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
Dinamikus klaszterközelítés Átlagtér illetve párközelítés kiterjesztése N játékos egy rácson helyezkedik el (periodikus határfeltétel) szimmetriák: transzlációs,
Gráfok Készítette: Dr. Ábrahám István.
Gráf szélességi bejárása
ELTE Adatokkal kapcsolatos fogalmak  Konstans: az az adat, amely a műveletvégzés során nem változtat(hat)ja meg értékét, mindvégig ugyanabban az „állapotban”
Adatszerkezetek 1. előadás
Operátorok Értékadások
Gazdaságstatisztika 11. előadás.
Gráf szélességi bejárása SzB(G,p). Tetszőleges gráf, melyben a p csúcsot választottam kiindulónak: A gráfnak megfelelő fa:
Készítette: Hanics Anikó. Az algoritmus elve: Kezdetben legyen n db kék fa, azaz a gráf minden csúcsa egy-egy (egy pontból álló) kék fa, és legyen minden.
Nevezetes algoritmusok: Fa megvalósítása Készítette: Várkonyi Tibor Zoltán.
Gráfok 1. Szlávi Péter ELTE IK Média- és Oktatásinformatika Tanszék
Copyright, 1999 © Szlávi Péter Sor típuskonstrukció Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
1 Szélességi Bejárás Györgyi Tamás – GYTNAAI.ELTE 2007 Március 22 Algoritmusok És Adatszerkezetek 2 Gráfalgoritmus S b a d e f h g c.
Lineáris algebra.
Copyright, 1999 © Szlávi Péter Szövegfeldolgozás 1.
1 Vektorok, mátrixok.
File- típus-konstrukciók Szlávi Péter ELTE Informatika Szakmódszertani Csoport
INFOÉRA Gráfok, gráfalgoritmusok I. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Gráfok ábrázolása teljesen láncoltan
Horváth Bettina VZSRA6.  Célja: Az eljárás célja egy véges gráf összes csúcsának bejárása a kezdőcsúcstól való távolságuk szerinti növekvő sorrendben.
Útkeresések.
Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/  További programozási.
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
Gráf szélességi bejárása. A szélességi bejárás elmélete Célja egy véges gráf összes csúcsának bejárása a kezdőcsúcstól való távolságuk szerinti növekvő.
Készítette : Giligor Dávid Neptun : HSYGGS
Geometriai feladatok programozása Geometriai programozás Szlávi Péter ELTE IK Média- és Oktatásinformatika Tanszék 2010.
Copyright, 1999 © Szlávi Péter Táblázat típuskonstrukció Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
INFOÉRA Gráfok, gráfalgoritmusok II. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Adatbázisszintű adatmodellek
V 1.0 Szabó Zsolt, Óbudai Egyetem, Programozás II. Gráfok Dijkstra algoritmus Kruskal algoritmus.
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
Programozási nyelvek típusossága.
Nevezetes algoritmusok
INFOÉRA Gráfok, gráfalgoritmusok II. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) IDE KELL: prioritási sor kupaccal. Juhász.
INFOÉRA Gráfok, gráfalgoritmusok III. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Gráfok 4. Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
Bevezetés Tematika Számonkérés Irodalom
Informatikai gyakorlatok 11. évfolyam
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Gráfok - 1 Definíció: Irányított gráf (digráf) G=(V,E) rendezett pár.
Adatszerkezetek -- Típusok
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Adatszerkezetek és algoritmusok ...
Algoritmus készítés.
Rekurzió 3. Szlávi Péter ELTE Informatika Szakmódszertani Csoport
Előadás másolata:

Gráfok 2. Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék szlavi@ludens.elte.hu http://peolpe.inf.elte.hu/szlavi 2000

Tartalom 0 Bevezetés 1 Hagyományos gráfábrázolások 2 A Gráftípus 2.1 Specifikáció 2.2 Megvalósítás 3 A gráfok bejárásának módszerei 3.1 Szélességi 3.2 Mélységi 4 A gráfbejárások alkalmazásai 4.1 Összefüggő-e a gráf? 4.2 A gráf komponensei 4.3 Útkeresés két pont között 2018.12.26. Gráfok 2

Tartalom 4.4 Két pont közötti legrövidebb út 4.5 A legrövidebb út súlyozott gráf esetén 4.6 Páros-e a gráf? 5 A feszítőfák 5.0 Fogalmak 5.1 Feszítőfák generálása 5.2 Minimális feszítőfák generálása 6 Az elérési és a távolsági mátrix meghatározása 6.1 Összefüggőség 6.2 Távolságmátrix súlyozott gráfokra 7 Hálózati folyamok 2018.12.26. Gráfok 2

2 A Gráftípus Madártávlatból: Gráf mint típuskonstrukció 2018.12.26. 2 A Gráftípus Madártávlatból: Gráf mint típuskonstrukció Gráf - Tömb analógia sokaságfélék: azonos típusú elemek együttese tömbelem gráfpont indexelés: indextípus pont/él-típus (?) Ahol a Gráf - Tömb analógia megbomlik: az elemkiválasztás lehetőségei – rákövetkezési reláció egyértelmű  többértelmű (lineáris) („élirányította”) abszolút  relatív (elemfüggetlen) (elemfüggő) 2018.12.26. Gráfok 2 Gráfok 2

2 A Gráftípus (folytatás) 2018.12.26. 2 A Gráftípus (folytatás) Legáltalánosabb esetben a gráf: típusnégyes Gráf(TÉl:THossz, TPont:TElem) Az elemkiválasztás eszköze Az elemleírás eszköze TÉl/TPont – az él/pont „neve” (direkt hozzáférés eszköze) THossz/TElem – az él/pont jellemzője, „tartalma” TÉl+THossz – a pontok topológiafüggő elérésének eszköze Általánosan működő eszköz; bár a TPont-szerinti is értelmes lehet, ha megvalósítható. 2018.12.26. Gráfok 2 Gráfok 2

2 A Gráftípus (folytatás) Műveletosztályok: Az „egészre” vonatkozók Dinamikusak (végrehajtás közben struktúramódosítók) – pontra (TPont), ill. élre (TÉl): beillesztés, törlés Statikusak (struktúrát nem módosítók) – pontra (TElem), ill. élre (THossz): módosítás, tesztelés, kiválasztás (mozgás) … Megjegyzés: A pontra (élre) vonatkozó dinamikusak memória- kezelési problémákat okoznak! Dinamikus és statikus gráf fogalma... 2018.12.26. Gráfok 2

2 A Gráftípus (folytatás) A gráf „működés” közben, egy példa: Gráf(TÉl:THossz, TPont:TElem) Konstans MaxKapuSzám : Egész(50) Típus KapuSorszám = 1..MaxKapuSzám ÁramköriElem= Rekord (tip:(BeKapu,VagyKapu, ÉsKapu,...,KiKapu) áll:Logikai [kimeneti állapot]) Vezeték = 'a'..'z' Ellenállás = Valós Áramkör =Gráf(Vezeték:Ellenállás, KapuSorszám:ÁramköriElem) 2018.12.26. Gráfok 2

2 A Gráftípus (folytatás) 2018.12.26. 2 A Gráftípus (folytatás) Kékkel jelöltük az ún. dinamikus Gráftípus műveleteit; statikus Gráf esetén ezekre nincs szükség. A kékség utal a dinamikusság, pontosabban a megvalósítási nehézségek „fokára”. 2.1 Specifikáció 2.1.0 A specifikáció elé …műveletekről már majdnem pontosan… Globálisak (a teljes struktúrára vonatkozók): Üres a struktúrát üresre állítja, vagy üreset hoz létre; Üres?: Igaz, ha a struktúra üres, különben Hamis; Létrehoz: gráfot beolvas (Inputbelsőábrázolás) PontSzám: a pontok száma a gráfban; ÉlSzám: az élek száma a gráfban; KomponensKezdőPont: pont, amelyből egy kompo-nens összes pontja elérhető; KomponensSzám: egy gráf (összefüggő) komponense-inek a száma. Előzetesen: miért is ez a nagy műveletválaszték? Az eddigieknél sokkal összetettebb adatszerkezetről van szó. A hasonlatos műveletekkel (l. a szomszéd pontok kezelésére szolgáló műveleteket) az a célom, hogy a megfelelő ábrázoláshoz legjobban illeszkedően lehessen használni gráfot. Ezekről érdemes elmélázni az egyes műveleteknél! l. komponens 2018.12.26. Gráfok 2 Gráfok 2

2 A Gráftípus (folytatás) Valamelyik „gráfalkatrészre” vonatkozók: Pont: a gráf adottadik pontja (valamilyen belső sorrend szerint); BeFok: egy pontba bevezető élek száma; KiFok: egy pontból kivezető élek száma; Érték: egy pont értéke; PontMódosít: egy pont értékét módosítja; Vanél?: van-e él két pont között; ÉlHossz: egy él hossza; ÉlMódosít: egy él hosszát módosítja; VégPontok: egy él két végpontja. Zölddel jelöltük a „ritka” műveleteket; ezekre nincs szükség, ha a párhuzamos élektől eltekintünk. 2018.12.26. Gráfok 2

2 A Gráftípus (folytatás) 2018.12.26. 2 A Gráftípus (folytatás) Struktúramódosítás és „mozgáskoordinálás”: BeillesztPont: új (izolált) pontot illeszt a struktúrához azonosítóval és elemértékkel; TörölPont: megszüntet egy pontot a struktúrában, előfeltétele, hogy izolált pont legyen; Összeköt: két pont között hosszal ellátott élt „teremt” a struktúrában; Elszakít: két pont közötti adott élt „megsemmisít”; VanSzomszédPont?: van-e közvetlenül elérhető pont; SzomszédPontokSzáma: a közvetlenül elérhető pontok száma; SzomszédPont: adottadik közvetlenül elérhető pont; Elgondolkodni a szomszédos pontok ezen operációinak ábrázolástól függő (pl. csúcsmátrix) műveletigényéről… A szomszéd pontok „ponttömbként” kezelése. 2018.12.26. Gráfok 2 Gráfok 2

2 A Gráftípus (folytatás) 2018.12.26. 2 A Gráftípus (folytatás) Az élek listaként kezelése. Az élek listaként kezelése. ElsőSzomszédPont: adott pontból kivezető „első” élen át elérhető pont; KövetkezőSzomszédPont: adott pontból egy adottra következő pont; KiindulóÉlekSzáma: adott pontból kiinduló élek száma, azaz SzomszédPontokSzáma + párhuzamos élek száma; KiindulóÉl: adott pontból kiinduló adottadik él. Megjegyzés: Összefüggő gráfok fölépítése közben is előállhat olyan állapot, amelynél az összefüggőség időlegesen nem teljesül! Ha nincsenek párhuzamos élek, akkor azonos a SzomszédPontokSzáma függvény értékével. Elgondolkodni a szomszédos pontok ezen operációinak ábrázolástól függő (pl. csúcslista) műveletigényéről… 2018.12.26. Gráfok 2 Gráfok 2

2 A Gráftípus (folytatás) Csak egy szűkített gráftípus algebrai leírásának a részletét adjuk meg 2 A Gráftípus (folytatás) 2.1.1 Formális specifikációk Algebrai leírás Nincsenek az éleknek nevük. A pontok sorszámozottak. Típus StatikusGráf(Elem): [Pont,Hossz=Egész] Asszociált műveletek: Létrehoz((Elem)*,(Pont2Hossz)*):Gráf [pontérték-listából és (honnan,hová,hossz)* él-listából felépít] PontSzám,ÉlSzám,KomponensSzám(Gráf):Egész KomponensKezdőPont(Gráf,Egész):Egész  {NemDef} Érték(Gráf,Pont):Egész  {NemDef} ÉlHossz(Gráf,Pont,Pont):Hossz  {NemDef} VanÉl?(Gráf,Pont,Pont):Logikai  {NemDef} Összeköt(Gráf,Pont,Pont,Hossz):Gráf Elszakít(Gráf,Pont,Pont):Gráf SzomszédPontokSzáma(Gráf,Pont):Egész  {NemDef} SzomszédPont(Gráf,Pont,Egész):Pont  {NemDef} … 2018.12.26. Gráfok 2

2 A Gráftípus (folytatás) Jelölések: g,g’:Gráf – általában a felső vesszők időbeliségre utalnak e1,e2 ,…,en :Elem p,p’,q,r:Pont h,h’:Hossz pl:(Elem)* [az i. érték tarozik az i. ponthoz] él:(Pont2Hossz)* n:Egész Axiómák: 1º Létrehoz – axióma g=Létrehoz((e1,…,en),())  PontSzám(g)=n  ÉlSzám(g)=0  KomponensSzám(g)=n  (i,j[1..n]: VanÉl?(g,i,j)  ÉlHossz(g,i,j)=+  Érték(g,i)=ei)  … 2018.12.26. Gráfok 2

2 A Gráftípus (folytatás) (1º Létrehoz – axióma (folytatás)) g=Létrehoz(pl,él)  VanÉl?(g,p,q)  ÉlHossz(g,p,q)=h  g’=Létrehoz(pl,él&(p,q,h))  g=g’  g=Létrehoz(pl,él)  VanÉl?(g,p,q)  g’=Létrehoz(pl,él&(p,q,h))  ÉlSzám(g’)=ÉlSzám(g)+1  VanÉl?(g’,p,q)  KomponensSzám(g’) [KomponensSzám(g)-1..KomponensSzám(g)]  KomponensSzám(g’)=KomponensSzám(g)  KomponensKezdőPont(g’,i)=KomponensKezdőPont(g,i) i[1..KomponensSzám(g)]  KomponensSzám(g’)=KomponensSzám(g)-1  i,j[1..KomponensSzám(g)]: KomponensKezdőPont(g,i)=r  KomponensKezdőPont(g,j)=q  VanÚt?(g’,r,p)  k[j+1..KomponensSzám(g)]: KomponensKezdőPont(g’,k-1)= KomponensKezdőPont(g,k) VanÚt? definiálandó! r p q … i. komponens j. komponens 2018.12.26. Gráfok 2

2 A Gráftípus (folytatás) 1’º Létrehoz – hiba-axióma pl=(e1,…,en)  él’=él&(p,q,h)&él”  p,qpl [(p,q,h) nem létező végpontú él]  Létrehoz(pl,él’)=NemDef … 2º Összeköt – axióma Összeköt(g,p,q,h)=g’  VanÉl?(g,p,q)  ÉlSzám(g’)=ÉlSzám(g)+1  VanÉl?(g’,p,q)  ÉlHossz(q’,p,q)=h  … 2’º Összeköt – hiba-axióma … hf … 3º Elszakít – axióma Szétszakít(g,p,q)=g’  VanÉl?(g,p,q)  ÉlSzám(g’)=ÉlSzám(g)-1  … 3’º Elszakít – hiba-axióma … hf … 2018.12.26. Gráfok 2

2 A Gráftípus (folytatás) Exportmodul A gráf statikus értelmezése esetén vagy fölösleges vagy konstans értékű operációk. ExportModul Gráf(Típus TÉl : Típus THossz, Típus TPont: Típus TElem): Eljárás Üres(Változó g:Gráf) Létrehoz(Változó f:InputSzövegFile [listák] g:Gráf) Függvény Üres?(Konstans g:Gráf):Logikai Függvény PontSzám(Konstans g:Gráf):NNEgész Pont(Konstans g:Gráf,i:NNEgész):TPont ÉlSzám(Konstans g:Gráf):NNEgész KomponensSzám(Konstans g:Gráf):NNEgész KomponensKezdőPont(Konstans g:Gráf, i:NNEgész):TPont NNEgész=Nem Negatív Egész 2018.12.26. Gráfok 2

2 A Gráftípus (folytatás) BeFok(Konstans g:Gráf, p:TPont):NNEgész KiFok(Konstans g:Gráf, p:TPont):NNEgész Függvény Érték(Konstans g:Gráf,p:TPont):TElem ÉlHossz(Konstans g:Gráf,é:TÉl):THossz VanÉl?(Konstans g:Gráf,p,q:TPont):Logikai Eljárás PontMódosít(Változó g:Gráf, Konstans p:TPont,e:TElem) ÉlMódosít(Változó g:Gráf, Konstans é:TÉl, h:THossz) VégPontok(Konstans g:Gráf,e:TÉl, Változó ból,ba:TPont) Eljárás BeillesztPont(Változó g:Gráf, Konstans p:TPont,e:TElem) TörölPont(Változó g:Gráf, Konstans p:TPont) 2018.12.26. Gráfok 2

2 A Gráftípus (folytatás) Eljárás Összeköt(Változó g:Gráf, Konstans é:TÉl, h:THossz, p,q:TPont) Elszakít(Változó g:Gráf, Konstans p,q:TPont) Elszakít(Változó g:Gráf, Konstans é:TÉl) 2018.12.26. Gráfok 2

2 A Gráftípus (folytatás) Függvény VanSzomszédPont?(Konstans g:Gráf, p:TPont):Logikai SzomszédPontokSzáma(Konstans g:Gráf, p:TPont):NNEgész SzomszédPont(Konstans g:Gráf, p:TPont,pontsorsz:NNEgész):TPont ElsőSzomszédPont(Konstans g:Gráf, p:TPont):TPont KövetkezőSzomszédPont(Konstans g:Gráf, minek,mireKöv:TPont):TPont KiindulóÉl(Konstans g:Gráf, p:TPont, élsorsz:NNEgész):TÉl KiindulóÉlekSzáma(Konstans g:Gráf, p:TPont):NNEgész Modul vége. 2018.12.26. Gráfok 2

2 A Gráftípus (folytatás) Konstans MaxKapuSzám : Egész(50) Típus KapuSorszám = 1..MaxKapuSzám ÁramköriElem= Rekord (tip:(BeKapu,VagyKapu, ÉsKapu,...,KiKapu) áll:Logikai [kimeneti állapot]) Vezeték = 'a'..'z' Ellenállás = Valós Áramkör =Gráf(Vezeték:Ellenállás, KapuSorszám:ÁramköriElem) A Gráftípus „működés közben” (példafolytatás): Változó g :Áramkör [l. típusok] k :ÁramköriElem drót:Vezeték Üres(g) k:=ÁramköriElem(BeKapu,Igaz) BeillesztPont(g,1,k) BeillesztPont(g,2,k) k:=ÁramköriElem(ÉsKapu,Igaz) BeillesztPont(g,3,k) k:=ÁramköriElem(KiKapu,Igaz) BeillesztPont(g,4,k) Összeköt(g,'a',1,3,0) Összeköt(g,'b',2,3,0) Összeköt(g,'c',3,4,0) 2018.12.26. Gráfok 2

2 A Gráftípus (folytatás) 2.2 Megvalósítás Érdekes reprezentációk: csúcsmátrix, szomszédsági lista egy speciális mutatós ábrázolás 2018.12.26. Gráfok 2

2 A Gráftípus (folytatás) 2018.12.26. 2 A Gráftípus (folytatás) „Valódi” típusparaméterek. Csúcsmátrix: Konstans MaxPont=??? Típus TPont=1..MaxPont TElem= THossz= TÉl= - Reprezentáció Típus PontLeírás=TElem Pontok=Tömb(TPont:PontLeírás) ÉlLeírás=THossz vagy Logikai Élek=Tömb(TPont,TPont:ÉlLeírás) Gráf=Rekord(pont:Pontok,él:Élek) Persze ebbe az ábrázolásba is beépíthető a TÉl típus, azaz a élekhez azonosító rendelhető: ÉlLeírás = Rekord(azon:TÉL,hossz:THossz vagy Logikai) Gráf=Tömb(TPont,TPont:ÉlLeírás) 2018.12.26. Gráfok 2 Gráfok 2

2 A Gráftípus (folytatás) 2018.12.26. 2 A Gráftípus (folytatás) „Valódi” típusparaméterek. Szomszédsági lista: Konstans MaxPont=??? Típus TPont=1..MaxPont TElem= THossz= TÉl= - Reprezentáció Típus SzomszédLista=Lista(TPont) vagy élhosszúságok esetén Él=Rekord(pont:TPont,hossz:THossz) SzomszédLista=Lista(Él) Gráf=Tömb(TPont:SzomszédLista) Persze ebbe az ábrázolásba is beépíthető a TÉl típus, azaz a élekhez azonosító rendelhető: Él = Rekord(azon:TÉL, pont:TPont, hossz:THossz) 2018.12.26. Gráfok 2 Gráfok 2

2 A Gráftípus (folytatás) Mutatós ábrázolás: Lényeg: „páros gráf”, amelynek felváltva mutogatnak egymásra az eredeti gráf pontjai és élei. 2018.12.26. Gráfok 2

2 A Gráftípus (folytatás) 2018.12.26. 2 A Gráftípus (folytatás) „Valódi” típusparaméterek. Típus TPont= TElem= THossz= TÉl= Reprezentáció Típus PontSorozat=AbsztraktSorozat(TPont) ÉlSorozat=AbsztraktSorozat(TÉl) PontLeírás=Rekord( név:TPont,ért:TElem, él:ÉlSorozat [kimenő élek]) ÉlLeírás=Rekord( név:TÉl,hossz:THossz, kpont:TPont [kezdőpont], vpont:TPont [végpont]) Absztrakt sorozat a string típus általánosítása, amelyben a bázís típus (jel helyett) tetszőleges típus lehet. 2018.12.26. Gráfok 2 Gráfok 2

2 A Gráftípus (folytatás) Gráf=Rekord( pontok:AbsztraktSorozat(PontLeírás) élek :AbsztraktSorozat(ÉlLeírás)) vagy Gráf=Rekord( pontok:AbsztraktSorozat(PontLeírás) élek :AbsztraktSorozat(ÉlLeírás) komponenskezdőpontok:PontSorozat) 2018.12.26. Gráfok 2