Zásobník
Zásobník

Zásobník (stack) je jednou ze základních datových struktur, která se využívá především pro dočasné ukládání dat v průběhu výpočtu. Zásobník data ukládá způsobem, kterému se říká LIFO - last in, first out - čili poslední vložený prvek jde na výstup jako první, předposlední jako druhý a tak dále. Opačným způsobem funguje datový typ fronta - FIFO - first in, first out.

Základní operace

Abstraktní datový typ zásobník specifikuje tyto operace:

  • push - vloží prvek na vrch zásobníku
  • pop - odstraní vrchol zásobníku
  • top - dotaz na vrchol zásobníku
  • isEmpty - dotaz na prázdnost zásobníku (size - dotaz na velikost zásobníku)

Využití

Zásobník se v informatice používá zejména pro ukládání stavu algoritmů a programů. Je použit v Tarjanově algoritmu, v  prohledávání do hloubky a implicitně ve všech rekurzivních algoritmech. Na zásobníkové architektuře jsou postaveny virtuální stroje pro jazyky Java a Lisp.


Kód

 /**
  * Zasobnik
  * Implementovan jako spojovy seznam
  */
 public class Stack {
 
     private Node first;
     private int size;
 
     public Stack() {
         this.size = 0;
     }
 
     /**
      * Ulozi prvek na vrch zasobniku
      * Slozitost - O(1)
      * @param i prvek k ulozeni
      */
     public void push(int i) {
         Node n = new Node(i);
 
         Node currFirst = first;
         first = n;
         n.next = currFirst;
 
         size++;
     }
 
     /**
      * Odstrani vrchni prvek ze zasobniku
      * Slozitost - O(1)
      * @return hodnota vrchniho prvku
      */
     public int pop() {
         if (size == 0) {
             throw new IllegalStateException("Zasobnik je prazdny, nelze odebrat prvek");
         }
         int value = first.value;
         first = first.next;
         size--;
         return value;
     }
 
     /**
      * Vrati vrchol zasobniku
      * Slozitost - O(1)
      * @return hodnota vrchniho prvku
      */
     public int top() {
         if (size == 0) {
             throw new IllegalStateException("Zasobnik je prazdny, nelze vratit");
         }
         return first.value;
     }
 
     /**
      * Vrati velikost zasobniku
      * @return velikost zasobniku 
      */
     public int getSize() {
         return this.size;
     }
 
     /**
      * Klasicka toString metoda, vraci textovou reprezentaci objektu
      * @return textova reprezentace objektu
      */
     @Override
     public String toString() {
         StringBuilder builder = new StringBuilder();
         Node curr = first;
         for (int i = 0; i < this.size; i++) {
             builder.append(curr.value).append(" ");
             curr = curr.next;
         }
         return builder.toString();
     }
 
     /**
      * Vnitrni trida reprezentujici uzel spojoveho seznamu
      */
     private class Node {
 
         private int value;
         private Node next;
 
         private Node(int value) {
             this.value = value;
         }
     }
 }
 

SEO od společnosti Digital Pylon


Online casino s algoritmem

České casino online online slot-vegas.cz

Hrajte nejlepší hry jako je GoodGame Empire.





Zajímavé články: Jak najít práci snů? Zvolte kariéru v IT!, Češi mají rádi hrací automaty online, Jak funguje algoritmické obchodování Casino, Online výuka Algoritmus a online marketing mají svá pravidla, Automaty, Matematický vliv, Ratings, Jak fungují algoritmy hazardních her online: více znalostí, více peněz, SYPWAI - nástroj pro vědecký vývoj, Vynikají na globálním trhu: Nejlepší vývojáři softwaru pro online výherní automaty, Jak si vybrat nejlepší české online casino, Proč byste měli hrát online casino VPN revoluce, Kde najdeme algoritmy v každodenním životě?, Čeká vás pracovní pohovor mimo město? Podívejte se, jak dokonale zvládnout včasný příchod, 5 úžasných technologií ze světa hazardních her, Mirror and access to Mostbet, Svou kancelář můžete mít stále po ruce, Jaké výhody má digitalizovaná firma oproti off-line konkurenci?, Jaký systém vybrat pro snadné řízení výroby?, Nahradí umělá inteligence ajťáky?, Důvody, proč používat SnapTik ke stahování videí TikTok, Dokonalý den na pláži: Co si vzít s sebou, aby byl výlet zábavný a bezpečný?, Jak přežít dlouhý let?, Go pay GoodGame Empire, Blockchain, Rozhovor, Umělá inteligence


Doporučujeme

Internet pro vaši firmu na míru

https://www.algoritmy.net