{{indexmenu_n>09}} ====== 9 - Struktury a spojové seznamy ====== * [[courses:b0b36prp:internal:tutorialinstruction:09|pro vyučující]] ===== Cíle cvičení ===== * Spojový seznam * Zásobník vs. fronta /* ==== Materiály ==== * šablona pro implementaci fronty - paralelka 204 {{ :courses:b0b36prp:labs:queue-template.zip |}} * [[courses:b0b36prp:tutorials:coding:make|Makefile - Řízení překladu a sestavení programu]] */ ===== Úkoly na cvičení ===== - Implementujte frontu, která bude obsahovat celá čísla, která bude uživatel zadávat z klávesnice. - Společně s cvičícím navrhněte vhodnou datovou stukturu, na které bude fronta založena. - Společně s cvičícím navrhněte prototypy funkcí, které umožní vkládání dat do fronty (PUSH), odebírání z fronty (POP), dotaz na poslední prvek. - Vytvořte funkci, která vypíše na konzoli obsah celé fronty. - Nezapomeňte implementovat i funkci, která uvolní všechna data spojená s implementovanou frontou. - Kontrolujte správnost dynamické alokace paměti pomocí Valgrindu. - Upravte vhodně kód tak, abyste naimplementovali zásobník. - S cvičícím diskutujte změny, které jste v kódu provedli. ===== Další úkoly na procvičení ===== - Implementujte spojový seznam, který v sobě bude obsahovat vždy dvojici dat - dvě celá čísla - první bude datová složka a druhé bude představovat prioritu. - Upravte předchozí seznam tak, aby implementoval prioritní frontu tak, aby funkce PUSH od začátku vytvářela vnitřní stukturu seznamu seřazenou podle priority. ===== Odkazy ===== [[http://seredlad.pages.fel.cvut.cz/slides/prp.html?10|Prezentace ke cvičení]] {{:courses:b0b36prp:labs:queue.txt|Vzorová implementace fronty - kostra}}