Prüferjeva zveza
Iz E-študij, proste zakladnice študentskega znanja
Prüferjeva zveza je postopek za pretvarjanje označenega drevesa z n vozlišči v (n-2)-terico števil. Značilnost tako dobljenega zaporedja števil je, da enolično določa neko drevo - možna je tudi obratna pot. Funkcija pretvorbe je torej bijekcija.
Vsebina |
Postopek pretvorbe:
- med listi poiščemo tistega, ki je največji glede na oznako
- v zaporedje dodamo oznako (edinega) soseda tega lista, odstranimo list
- ponavljamo dokler ne ostaneta samo še dve vozlišči
Stopnja točke v drevesu je 1 + število ponovitev v zaporedju ki ga dobimo s to pretvorbo.
Primer uporabe
Zbriši največji list in zapiši njegovega soseda.
- zbrišemo 7, zapišemo 1
- zbrišemo 6, zapišemo 8
- zbrišemo 5, zapišemo 1
- zbrišemo 4, zapišemo 1
- zbrišemo 2, zapišemo 3
- zbrišemo 3, zapisemo 8
dobimo: [1,8,1,1,3,8]
Obratna pretvorba:
- določimo liste (tiste oznake ki ne nastopajo v zaporedju)
- določimo povezavo med največjim listom in prvim členom preostalega zaporedja
- odstranimo list in skrajšamo zaporedje
- če se odstranjeni člen ne pojavi več v zaporedju, ga dodamo med liste
- ponavljamo dokler ne izpraznimo zaporedja
- dodamo povezavo med preostalima listoma
Primer uporabe
Zaporedoma dodajaj povezave med tekočim elementom koda in največjim listom.
Zgled: [2,3,2,8,2,1]
- števila (med 1 in 8), ki v kodi manjkajo, so listi drevesa. Največji list (7) povežemo s prvim elementom kode (2).
- povezava 7
2 listi: [4,5,6]
- povezava 6
3 listi: [3,4,5]
- povezava 5
2 listi: [3,4]
- povezava 4
8 listi: [3,8]
- povezava x
2 x=8 listi: [2,3]
- povezava y
1 y=3 listi: [1,2]
- povezava u
v u=1, v=2