90 likes | 288 Views
Stack (pinu, magasin). Risto Heinsar & Ott Madis Ozolit. LIFO algoritm. Stacki olemus. Stacki saab lisada elemente kõige peale ( push funktsioon) ja eemaldada elemente kõige pealt ( pop funktsioon). Stacki lihtsus võimaldab kiire opereerimise, kuid andmete ligipääs on piiratud.
E N D
Stack (pinu, magasin) Risto Heinsar & Ott Madis Ozolit
Stacki olemus • Stacki saab lisada elemente kõige peale (push funktsioon) ja eemaldada elemente kõige pealt (pop funktsioon). • Stacki lihtsus võimaldab kiire opereerimise, kuid andmete ligipääs on piiratud. • Rakendused: Hanoi torn, funktsioonide stack (callstack), arvusüsteemide teisendused, sorteerimine jt
Stacki probleemid • Alumistele elementidele ligipääsu pole, kuniks midagi asub selle kohal • Stack overflow – stacki ületäitumine(pushimine, kui see on täis). • Stack underflow – stackistelemendipop’iminekui see on tühi.
Stack operatsioonid • http://bit.ly/stack_naide • push() – elemendi lisamine stacki • pop() – elemendi eemaldamine stackist ning selle tagastamine • Lisaks: • create() – stackile mälu andmine • destroy() – stacki mälust eemaldamine • top() – viimase lisatud elemendi „piilumine“
Stacki realisatsioon • Massiivi põhine • Linked list põhine 23 323 423 11 43 23 XXX 323 XXX 423 XXXXXXXX 11 XXXXXXX 43
Stacki realisatsioon • Massiivi põhine #define STACKSIZE 10 typedefstruct{ size_tsize; intitems[STACKSIZE]; } STACK; • Linked list põhine typedefstructstackElement{ intnum; structstackElement*pNext; } STACK;
Järgmised praktikumid: • 9. õppenädalal tunni toimumine selgitamisel.Grupivanem saadab teisipäeval kirja meile ja küsib, kas tund toimub!!! • 10. õppenädalal toimub tund uues majas Akadeemia tee 15a. Ruumi nr: XIV-502
Tunnitöö • Realiseeripush(), pop(), display() funktsioonid. push() – lisab elemendi pop() – eemaldab ja kuvab elemendi display() - väljastabkõikstackielemendid (jatühjendabstacki selle käigus) • Lisagemenüüloogika, mislubabkasutajapooltsisestusegakasstackipush/pop/display'da. • Overflow/Underflow kontroll!