Množina
Množina

Množina (set) je abstraktní datová struktura, která obsahuje hodnoty, aniž by garatovala jejich pořadí. Jelikož se jedná se o implementaci matematického termínu množina, tak tato struktura obsahuje každý prvek vždy maximálně jednou. Podobnou strukturou, která však smí obsahovat daný prvek vícekrát, je multimnožina. Pro implementaci systému navzájem se nepřekrývajících podmnožin používáme datovou strukturu disjoint-set.

Implementace

Nejjednodušším způsobem implementace množiny je použít seznam, zapomenout na pořadí prvků a při vkládání vždy hlídat, aby se daný prvek neobjevil v množině vícekrát. Ač je tento postup přímočarý, tak je velice neefektivní, protože je pro vyhledání prvku nutné v krajním případě projít celou množinu (tj. asymptotická složitost O(n)). Z tohoto důvodu se pro ukládání dat do množiny používá většinou hashovací tabulka (hash table), která zajistí přístup k jednotlivým prvkům průměrně v konstantním čase.


Kód

01./**
02. * Mnozina implementovana jako list
03. * @author Pavel Micka
04. * @param <ENTITY> typovy parametr obsahu
05. */
06.public class Set<ENTITY> {
07.    private List<ENTITY> list;
08.    /**
09.     * Konstruktor
10.     * @param initialCapacity kapacita, se kterou je inicializovan podrizeny seznam
11.     */
12.    public Set(int initialCapacity) {
13.        list = new ArrayList<ENTITY>(initialCapacity);
14.    }
15. 
16.    /**
17.     * Vlozi entitu do mnoziny
18.     * @param e entita
19.     * @return true - pokud probehne vlozeni uspesne, false pokud jiz mnozina
20.     * danou entitu obsahuje (dle equals())
21.     */
22.    public boolean put(ENTITY e) {
23.        if (list.contains(e)) return false;
24.        list.add(e);
25.        return true;
26.    }
27. 
28.    /**
29.     * Vrati nejaky prvek z mnoziny (a z mnoziny jej take odstrani)
30.     * @return prvek, null pokud je mnozina prazdna
31.     */
32.    public ENTITY pick() {
33.        if(list.size() == 0) return null;
34.        return list.remove(list.size() - 1);
35.    }
36. 
37.    /**
38.     * Odstrani z mnoziny danou entitu
39.     * @param e entita
40.     * @return true - pokud mnozina obsahovala danou entitu, false - pokud nikoliv
41.     */
42.    public boolean remove(ENTITY e) {
43.        return list.remove(e);
44.    }
45. 
46.    /**
47.     *
48.     * Dotaz na pritomnost dane entity
49.     * @param e entita
50.     * @return true - pokud jej mnozina obsahuje, false - pokud nikoliv
51.     */
52.    public boolean contains(ENTITY e) {
53.        return list.contains(e);
54.    }
55.    /**
56.     * Dotaz na velikost mnoziny
57.     * @return pocet prvku
58.     */
59.    public int size() {
60.        return list.size();
61.    }
62.}

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