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

Fák. Fák A fa egy olyan gráf, amelyik összefüggő és nem létezik benne kör. A fa egy olyan gráf, amelyik összefüggő és nem létezik benne kör. A B C D EF.

Hasonló előadás


Az előadások a következő témára: "Fák. Fák A fa egy olyan gráf, amelyik összefüggő és nem létezik benne kör. A fa egy olyan gráf, amelyik összefüggő és nem létezik benne kör. A B C D EF."— Előadás másolata:

1 Fák

2 Fák A fa egy olyan gráf, amelyik összefüggő és nem létezik benne kör. A fa egy olyan gráf, amelyik összefüggő és nem létezik benne kör. A B C D EF LKM H IJN P Q G

3 Fák A csúcs gyökér. F-nek A a szülője, K, L, M a gyerekei. Levelek (olyan csúcsok, melyeknek nincs gyermekük): B, C, H, I, P, Q, K, L, M, N. Testvérek (ugyanaz a szülőjük): pl. K, L, M. A B CD E F LKMHIJN P Q G A fa mélysége = a gyökértől a levelekhez vezető leghosszabb út Ebben az esetben: 3 (A, E, J, Q)

4 Adott a következő ősvektor: 0, 5, 8, 1, 1, 2, 3, Ősvektor: Az ősvektor egy olyan tömb, mely a csomópontok ősét (apját) tárolja. A gyökér ősének megfelelő érték 0.

5 Bináris fa Olyan fa, melyben egyetlen csúcsnak sincs kettőnél több gyereke: részfa j gyökér részfa b Példa bináris fára: Deklarálás Pascalban: type binfa=^adat; adat=record inf=byte; {char/string} bal, jobb:binfa; end;

6 Procedure level(l:binfa); Begin if (l^.jobb=nil) and (l^.bal=nil) then write(l^.inf) else if l^.jobb=nil then level(l^.bal) else if l^.bal=nil then level(l^.jobb) else begin level(l^.bal); level(l^.jobb); end; End; A levelek kiírása

7 Procedure bal(l:binfa); Begin If l^.bal=nil then write(l^.inf) else bal(l^.bal); End; Procedure jobb(l:binfa); Begin If l^.jobb=nil then write(l^.inf) else jobb(l^.jobb); End; A legbaloldalibb (legjobboldalibb) csomópont meghatározása A legbaloldalibb (legjobboldalibb) csomópont meghatározása

8 Azt nevezzük preorder bejárásnak amikor kiírjuk a gyökeret majd rendre bejárjuk a bal- majd a jobb részfát: Azt nevezzük inorder bejárásnak amikor bejárjuk előbb a bal részfát, majd kiírjuk a gyökeret ezután bejárjuk a jobb részfát: Azt nevezzük postorder bejárásnak, amikor rendre bejárjuk a bal- majd a jobb részfát és ezután kiírjuk a gyökeret: Bináris fák bejárása

9 Bináris keresőfa Bináris keresőfa: Minden X csúcsra teljesül, hogy a baloldali részfa minden csúcsában lévő információ kisebb, mint az X-ben levő, a jobboldali részfában pedig minden érték nagyobb vagy egyenlő. Példa keresőfára Keresőfa: 6, 8, 2, 1, 4, 3, csúcsok estén Szúrjunk be egy új csúcsot pl. az 5-öst 5

10 Keresés Keresés (Find): a T fa azon csomópontjának értékét írja ki, amelynek információja X, vagy nil, ha nincs. procedure Find(X: integer; T: binfa) ; Begin If T=nil then write(X,’ nem talalhato’) else If T^.inf =x then write(X,’-et megtalaltam’) else If X < T^.inf then Find(X, T^.bal) Else If X > T^.inf then Find(X, T^.jobb) End; (keressük a 2-est) Keressük meg a 2-es csúcsot. A keresőfáknál a legkisebb elem a legbaloldalibb csúcs, és a legnagyobb a legjobboldalibb csúcs értéke.

11 Törlés Törlés (Delete): Először megkeressük a csúcsot. Ha: 1.a csúcs egy levél, akkor azonnal törölhető 2.a csúcsnak egy gyereke van, akkor a szülője pointerének átírása után a csúcs törölhető 3.a csúcsnak két gyereke van, akkor megkeressük a bal részfájában a legjobboldalibb csúcsot, ami a törlendő csúcs helyére kerül

12 Töröljük a 3-as csúcsot

13 Töröljük a 4-es csúcsot

14 Töröljük a 2-es csúcsot

15 Miklós Zoltán


Letölteni ppt "Fák. Fák A fa egy olyan gráf, amelyik összefüggő és nem létezik benne kör. A fa egy olyan gráf, amelyik összefüggő és nem létezik benne kör. A B C D EF."

Hasonló előadás


Google Hirdetések