BPC-ALD_Zpracované_otazky_ke_zkousce
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
//wójcik
struct TNode *tmp1 = iA->iNext, *tmp2 = iB->iNext;
iB->iNext = tmp1;
iA->iNext = tmp2;
while(tmp1->iNext != iB) //nastavim tmp1 na prvek pred iB (tzn. tmp1->iNext =
iB)
tmp1 = tmp1->iNext;
while(tmp2->iNext != iTail) //nastavim tmp2 na prvek pred iTail (tzn. tmp2->iNext =
iTail)
tmp2 = tmp2->iNext;
tmp1->iNext = iTail;
tmp2->iNext = iB;
//Zkuste si to kdyžtak nakreslit, mělo by to sedět //Good job, sedí. 🙂 (Stejsky)
2. Popište, co zajišťuje iterátor (např. pro ADT lineární seznam) a uveďte, jaké obvyklé funkce by měl iterátor
implementovat. (++) Pozn.: ADT = abstraktní datový typ
• Slouží k procházení seznamu, při jeho průchodu udržuje odkaz na aktuální pozici
• Oddělení implementace od přímého použití - uživatel pracuje s funkcemi pro iterátor, nikoli se
samotným seznamem
• Vytváří jednotné rozhraní
• Spolu s funkcí foreach umožňuje aplikovat danou funkci na každý prvek seznamu
Základní funkce iterátoru:
− Inicializace iterátoru
− Validita iterátoru
− Posunutí na další uzel
− Získaní hodnoty z uzlu
− Nastavení hodnoty na uzlu
− Smazaní uzlu
− Přistup na n-tý prvek ADT
3. Popište, jak pracuje ADT zásobník, jaké má vlastnosti a uveďte, jaké obvyklé funkce jsou pro zásobník
implementovány. (++)
• Jeden konec je fixní a označuje se jako dno zásobníku, druhý konec je vrchol zásobníku
• LIFO - Last In First Out - prvky jsou odebírány v opačném pořadí, než byly vkládány
Operace:
− Vloží prvek na vrchol zásobníku (push)
− Odstraní prvek z vrcholu zásobníku (pop)
− Ověří, zda je zásobník prázdný (is_empty)
− Získá hodnotu z vrcholu zásobníku (top)