Úvod do programování - Cvičení č. 7


Autor: Miroslav Beneš
Organizace: Katedra informatiky FEI VŠB-TU Ostrava
Popis: V rámci tohoto cvičení si vyzkoušíte různé implementace zásobníku.

Úkoly

Prostudujte jednotlivé implementace zásobníku a v úloze č. 4 vytvořte vlastní implementaci.

  1. Zásobník implementovaný statickým polem.
    Soubory Stack.java, ArrayStack.java, Priklad1.java.
  2. Zásobník implementovaný dynamickým polem.
    Soubory DynamicArrayStack.java, Priklad2.java.
  3. Zásobník implementovaný vázanou strukturou.
    Soubory StackElem.java, LinkedStack.java, Priklad3.java.
  4. Dva zásobníky v jednom poli. Ukažte, jakým způsobem lze realizovat dva zásobníky v jednom statickém poli tak, že žádný z nich nepřeteče, pokud celkový počet položek v obou zásobnících nepřesáhne velikost pole. Implementace bude založena na tom, že jeden zásobník bude v poli růst směrem zleva a druhý zásobník směrem zprava.
    Soubory DoubleStack.java, Priklad4.java - povšimněte si, že uvnitř třídy můžeme definovat další třídy. Tyto tzv. vnitřní třídy mají přístup na instanční proměnné vnější třídy, takže například ve třídách LeftStack a RightStack můžeme pracovat přímo s polem data.
  5. Třída java.util.Stack. Prostudujte dokumentaci třídy java.util.Stack. Tato standardní třída implementuje zásobník jako specializaci třídy Vector. Upravte některý z testovacích příkladů 1-3 tak, aby používal tuto třídu (pozor na možný konflikt s třídou priklad7.Stack - je třeba používat plné jméno třídy).