Junior
Jaké existují datové struktury?
sobes.tech AI
Odpověď od AI
Datové struktury se dělí do dvou hlavních kategorií:
-
Lineární: Prvky jsou uspořádány sekvenčně.
- Pole (Array): Fixní velikost, přímý přístup podle indexu.
int[] numbers = { 1, 2, 3, 4, 5 }; // Příklad deklarace - Seznam (List): Dynamická velikost, prvky jsou přidávány a odstraňovány.
System.Collections.Generic.List<string> names = new System.Collections.Generic.List<string>(); names.Add("Alice"); names.Add("Bob"); - Související seznam (Linked List): Prvky (uzly) obsahují odkaz na následující (a možná předchozí) prvek.
- Jednosměrný
- Dvousměrný
System.Collections.Generic.LinkedList<char> letters = new System.Collections.Generic.LinkedList<char>(); letters.AddLast('A'); letters.AddLast('B'); - Zásobník (Stack): Poslední přišel - první odešel (LIFO).
System.Collections.Generic.Stack<int> stack = new System.Collections.Generic.Stack<int>(); stack.Push(10); // Přidá prvek na vrchol int item = stack.Pop(); // Odebere a vrátí prvek z vrcholu - Fronta (Queue): První přišel - první odešel (FIFO).
System.Collections.Generic.Queue<string> queue = new System.Collections.Generic.Queue<string>(); queue.Enqueue("Task 1"); // Přidá prvek na konec string task = queue.Dequeue(); // Odebere a vrátí prvek z začátku
- Pole (Array): Fixní velikost, přímý přístup podle indexu.
-
Nelineární: Prvky nejsou uspořádány sekvenčně.
- Strom (Tree): Hierarchická struktura s kořenovým uzlem a potomky.
- Dvouprvkový strom
- B-strom
- Červeno-černé strom
- AVL strom
- Graf (Graph): Sada vrcholů (uzlů) a hran (vazeb) mezi nimi.
- Směrovaný (Directed)
- Nesměrovaný (Undirected)
- Hash tabulka (Hash Table) / Slovník (Dictionary): Ukládají páry klíč-hodnota, používající hashovací funkci pro rychlé vyhledávání.
System.Collections.Generic.Dictionary<string, int> ageByName = new System.Collections.Generic.Dictionary<string, int>(); ageByName.Add("Charlie", 30); int age = ageByName["Charlie"]; // Rychlý přístup podle klíče - Množina (Set): Kolekce unikátních prvků bez určeného pořadí.
System.Collections.Generic.HashSet<int> uniqueNumbers = new System.Collections.Generic.HashSet<int>(); uniqueNumbers.Add(5); uniqueNumbers.Add(10); uniqueNumbers.Add(5); // Duplicita nebude přidána
- Strom (Tree): Hierarchická struktura s kořenovým uzlem a potomky.