|
Algoritmuselmélet zárthelyi, 1999. november 18.
- 1.
- Egy UNIÓ-HOLVAN adatszerkezetünk van, melynek az S alaphalmaza
a magyar abc betuibol áll és amelyben
a HOLVAN muveletek során útösszenyomást alkalmazunk.
Ennek két fája látható az alábbi rajzon.
Rajzolja le az
UNIÓ(HOLVAN(G),HOLVAN(L)) végrehajtása után kialakuló
helyzetet.
- 2.
- Az egészelemu A[1:n] tömböt majdnem rendezettnek nevezünk, ha
A[i]>A[j] teljesül minden i-j>5 esetén. Mekkora lesz a
beszúrásos rendezés költsége (összehasonlítások, illetve mozgatások
száma), ha a bemeneti tömb majdnem rendezett? Mutassa meg, hogy a
beszúrásos rendezés algoritmusának kis módosításával az ilyen tömbök
lineáris idoben (O(n) összehasonlítás, mozgatás) rendezhetok.
- 3.
- Legyen G éllistával adott, súlyozott élu irányított gráf és s egy
rögzített csúcsa. Tegyük fel, hogy az élsúlyok nemnegatívak. Javasoljon
hatékony
algoritmust, mely a G minden v csúcsára megadja a legrövidebb
s-bol induló és s-be érkezo olyan irányított séta
hosszát, amely
a v ponton is átmegy.
A séták egy ponton többször is átmehetnek.
Elemezze módszere költségét.
- 4.
- Adott egy n-pontú bináris fa a szokásos módon (a csúcsokban jobb
és bal mutatóval). A csúcsokban tárolt elemek egész számok.
Vázoljon O(n) lépésszámú módszert annak az eldöntésére, hogy a fa
eleget tesz-e a keresofa-tulajdonságnak.
- 5.
- Legyen G egy súlyozott élu, összefüggo, irányítatlan gráf. Tegyük fel,
hogy nincs két azonos élsúly, és jelölje F a G (egyetlen) minimális
költségu feszítofáját. Igaz-e, hogy az (a) állításból következik
a (b) állítás? A két állítás a következo:
(a) Minden
esetén az
F fa i legkisebb éle által feszített részgráf is fa.
(b) G-re alkalmazva a Boruvka-algoritmus egy menetben befejezodik.
- 6.
- Van a memóriában egy ismeretlen hosszú láncolt lista:
a lista minden egyes elemébol egy mutató mutat a
következore, kivéve a lista utolsó tagját, ahol
a mutató vagy NULL, vagy pedig a lista valamelyik
korábbi elemére mutat.
(Képzeljétek el a fenti szituációt, mert a rajzot nem tudom
berakni most.)
Adott a lista elso elemére egy mutató. Vázoljon
egy algoritmust, amely a lista (ismeretlen) hosszában
mérve lineáris idoben megkülönbözteti a két
esetet (vagy megtalalálja a NULL mutatót, vagy
pedig felismeri, hogy visszavezeto mutató van.)
A listában levo elemeket nem szabad megváltoztatni.
A felhasznált munkaterületünkön konstans sok mutatót illetve
természetes számot tárolhatunk.
A megoldásokhoz megfelelo indoklást kérünk.
Jó munkát!
|