Harjutus nr 2 Mis on kahe viidaga ahel? Mis on ringahel? (Saab lugeda üle ahelate materjalist, slaide ei ole.) Ülesanne 1 Katsetused kahe viidaga ahelaga 1.1 Moodusta kahe viidaga ahel, lisades elemente ahela lõppu. Ahela kohta peab säiluma 2 viita - esimesele ja viimasele elemendile. 1.2 Moodusta kahe viidaga ahel nii, et elemendid lisatakse ahelasse sorteeritult. Andmed sisestatakse suvalises järjekorras. Igale sisestatud arvule otsitakse vastavalt tema suurusele ahelas sobiv koht ja lisatakse sinna. Ahela algusesse, keskele ja lõppu lisamised on erinevad olukorrad. Ülesanne 2 Moodusta ringahel - lisa elemente järjest ahelasse ja kui need otsa saavad, siis sulge ahel, lisades esimese elemendi aadressi viimase elemendi viidavälja. Ülesanne 3 Avaldis pööratud Poola kujul e postfiksavaldis. Teisenda järgmised avaldised postfiks-kujule. (5*((9*8)+(7*(4+6)))) (2*a)/((a+b)*(a-c)) Kasuta järgnevalt kirjeldatud algoritmi. Teisendusalgoritm (eeldab, et avaldises on maksimaalselt sulge): Töötle sümbolhaaval - number kirjuta väljundisse - avanevat sulgu ignoreeri - operaator (tehtemärk) pane pinusse - sulgeva sulu korral võta operaator pinust ja kirjuta väljundisse. Arvuta: 5 3 * 1 3 2 - + + 5 9 * 8 7 4 6 + * 2 1 3 * + * + * Arvutamisalgoritm: tööta märkhaaval - kui on arv, pane pinusse - kui on operaator, võta pinust 2 arvu, tee operaatorile vastav tehe ja kirjuta vastus pinusse. Koduseks nuputamiseks ja enese arendamiseks (koosta algoritm ja programm): Ülesanne METSKAPTEN Metskapteni laeval on probleem vee peal püsimisega. Kogu last on juba üle parda heidetud, kuid laev vajub ikka veel. Ainus võimalus on mõned reisijad üle parda heita. Et valik oleks aus, seab kapten laeva kõik N reisijat ringi ja järjest lugedes iga K-s heidetakse üle parda, kuni vajumine lakkab. Et aga laeval on kapteni m sugulast, siis tuleb nad seada ringis parimatele positsioonidele. Leida esialgses ringis m kõige ohutumat positsiooni. Andmetena sisestatakse reisijate arv N, mitmes reisija üle parda visatakse (k) ja kapteni sugulaste arv m, Näiteks andmete N=10, k=2, m=3 korral on kõige ohutumad positsioonid 4 ja 10. Ilmselt tuleks selles programmis hakata kogu tegevust simuleerima. Kuidas seda teha? Kuidas andmeid/inimesi hoida? Proovida võiks ringahelaga (ahela viimase elemendi viidaväljas on simese elemendi aadress.