Page 53 - Demo
P. 53
Nxënësi/ja: mëson përdorimin e pilave dhe radhëve; kupton zbatimin e pilave dhe radhëve në Python.Kulla e Hanoit (The tower of Hanoi) është një lojë e njohur matematikore (puzzle) e shpikur nga matematikani Francez Edouard Lucas në 1883. Ajo formohet nga 3 shtylla dhe një numër i caktuar disqesh më përmasa të ndryshme (zakonisht 5-9), të cilat mund të zhvendosen në secilën prej shtyllave. Loja fillon me disqet e renditur sipas madhësisë nga më e madhja në bazë te më e vogla në majë. Qëllimi është të transferohen disqet në një shtyllë tjetër, duke u ndihmuar nga shtylla e tretë dhe duke ndjekur këto 3 rregulla:1. vetëm një disk mund të zhvendoset në një kohë;2. çdo lëvizje lidhet me marrjen e një disku nga një shtyllë dhe vendosjen e saj në krye të pilës në shtyllën tjetër;3. disku nuk mund të vendoset mbi një disk me madhësi më të vogël. Numri minimal i lëvizjeve të nevojshme për ta zgjidhur lojën është 2n-1, ku n është numri i disqeve.Provoni ta luani lojën në internet. Kjo do t’ju ndihmojë ta kuptoni më mirë konceptin e pilës me të cilën do të njihemi në mësimin e sotëm. Aktivitet:Pilat janë një lloj tjetër strukture të dhënash, si tabelat dhe stringat që pamë në mësimin e kaluar. Pila ofron dy veprime kryesore: push, për shtim në pilë dhe pop, për fshirje nga pila. Karakteristika kryesore e pilës është se si shtimi edhe fshirja kryhen nga maja e pilës. Për të konkretizuar idenë e kësaj lloji strukture imagjinoni pjatat e vendosura mbi njëra-tjetrën (ose stivën e druve). Mund të vendosni pjata vetëm në krye të stivës dhe mund t’i hiqni po nga kreu. Nëse ju duhet të hiqni pjatën e fundit, pa rrezikuar shembjen e gjithë pjatave, do ju duhet t’i hiqni pjatat një nga një nga kreu derisa të mbërrini te pjata e fundit. Mendoni sikur t’ju duhet të hiqni numrin 1, kur pila është plot, si në figurën 2. Pilat njihen si struktura të dhënash të llojit LIFO (Last In First Out), që nënkupton se i fundit që shtohet në pilë është i pari që del nga pila. Emërtimi i njëvlershëm me LIFO është FILO (First In Last Out).Përgjatë shtimit të një elementi në majë të pilës me funksionin push() është e rëndësishme të kontrollohet nëse pila është plot, përndryshe do të merret një mesazh gabimi. Po ashtu, përgjatë fshirjes së një elementi me funksionin pop() duhet të kontrollohet nëse pila është bosh, përndryshe do të merret mesazh gabimi.Funksioni push() nuk kthen vlerë, ndërsa funksioni pop() kthen vlerën e elementit që u hoq nga pila. Një shembull Fig. 121shton312shton2413shton2351shton23461shton23454 561heq2345651heq234741heq23831heq2921heq101Fig. 22.10 Përdorimi i strukturave për zgjidhjen e problemeve (II)51

