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

01./**
02. * Zasobnik
03. * Implementovan jako spojovy seznam
04. */
05.public class Stack {
06. 
07.    private Node first;
08.    private int size;
09. 
10.    public Stack() {
11.        this.size = 0;
12.    }
13. 
14.    /**
15.     * Ulozi prvek na vrch zasobniku
16.     * Slozitost - O(1)
17.     * @param i prvek k ulozeni
18.     */
19.    public void push(int i) {
20.        Node n = new Node(i);
21. 
22.        Node currFirst = first;
23.        first = n;
24.        n.next = currFirst;
25. 
26.        size++;
27.    }
28. 
29.    /**
30.     * Odstrani vrchni prvek ze zasobniku
31.     * Slozitost - O(1)
32.     * @return hodnota vrchniho prvku
33.     */
34.    public int pop() {
35.        if (size == 0) {
36.            throw new IllegalStateException("Zasobnik je prazdny, nelze odebrat prvek");
37.        }
38.        int value = first.value;
39.        first = first.next;
40.        size--;
41.        return value;
42.    }
43. 
44.    /**
45.     * Vrati vrchol zasobniku
46.     * Slozitost - O(1)
47.     * @return hodnota vrchniho prvku
48.     */
49.    public int top() {
50.        if (size == 0) {
51.            throw new IllegalStateException("Zasobnik je prazdny, nelze vratit");
52.        }
53.        return first.value;
54.    }
55. 
56.    /**
57.     * Vrati velikost zasobniku
58.     * @return velikost zasobniku
59.     */
60.    public int getSize() {
61.        return this.size;
62.    }
63. 
64.    /**
65.     * Klasicka toString metoda, vraci textovou reprezentaci objektu
66.     * @return textova reprezentace objektu
67.     */
68.    @Override
69.    public String toString() {
70.        StringBuilder builder = new StringBuilder();
71.        Node curr = first;
72.        for (int i = 0; i < this.size; i++) {
73.            builder.append(curr.value).append(" ");
74.            curr = curr.next;
75.        }
76.        return builder.toString();
77.    }
78. 
79.    /**
80.     * Vnitrni trida reprezentujici uzel spojoveho seznamu
81.     */
82.    private class Node {
83. 
84.        private int value;
85.        private Node next;
86. 
87.        private Node(int value) {
88.            this.value = value;
89.        }
90.    }
91.}

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, Ochranná známka pre softvér: Prečo ju registrovať?, Role kryptografických algoritmů v zabezpečení online kasin, Jaké jsou náklady na nákup 3D tiskárny?, Jak algoritmy vylepšují online zážitky v roce 2025,


Doporučujeme

Internet pro vaši firmu na míru

https://www.algoritmy.net