Junior
Jakie istnieją struktury danych?
sobes.tech AI
Odpowiedź od AI
Struktury danych dzielą się na dwie główne kategorie:
-
Liniowe: Elementy są ułożone sekwencyjnie.
- Tablica (Array): Stały rozmiar, dostęp bezpośredni przez indeks.
int[] numbers = { 1, 2, 3, 4, 5 }; // Przykład deklaracji - Lista (List): Dynamiczny rozmiar, elementy są dodawane i usuwane.
System.Collections.Generic.List<string> names = new System.Collections.Generic.List<string>(); names.Add("Alice"); names.Add("Bob"); - Lista powiązana (Linked List): Elementy (węzły) zawierają odwołanie do następnego (i ewentualnie poprzedniego).
- Jednokierunkowa
- Dwukierunkowa
System.Collections.Generic.LinkedList<char> letters = new System.Collections.Generic.LinkedList<char>(); letters.AddLast('A'); letters.AddLast('B'); - Stos (Stack): Ostatni weszło, pierwszy wyszło (LIFO).
System.Collections.Generic.Stack<int> stack = new System.Collections.Generic.Stack<int>(); stack.Push(10); // Dodaje element na szczyt int item = stack.Pop(); // Usuwa i zwraca element ze szczytu - Kolejka (Queue): Pierwszy weszło, pierwszy wyszło (FIFO).
System.Collections.Generic.Queue<string> queue = new System.Collections.Generic.Queue<string>(); queue.Enqueue("Zadanie 1"); // Dodaje element na koniec string task = queue.Dequeue(); // Usuwa i zwraca element z początku
- Tablica (Array): Stały rozmiar, dostęp bezpośredni przez indeks.
-
Nieliniowe: Elementy nie są ułożone sekwencyjnie.
- Drzewo (Tree): Struktura hierarchiczna z korzeniem i potomkami.
- Drzewo binarne
- Drzewo B
- Drzewo czerwono-czarne
- Drzewo AVL
- Graf (Graph): Zbiór wierzchołków (węzłów) i krawędzi (połączeń) między nimi.
- Skierowany (Directed)
- Nieskierowany (Undirected)
- Tablica haszująca (Hash Table) / Słownik (Dictionary): Przechowują pary klucz-wartość, używając funkcji hash do szybkiego wyszukiwania.
System.Collections.Generic.Dictionary<string, int> ageByName = new System.Collections.Generic.Dictionary<string, int>(); ageByName.Add("Charlie", 30); int age = ageByName["Charlie"]; // Szybki dostęp po kluczu - Zbiór (Set): Kolekcja unikalnych elementów bez określonego porządku.
System.Collections.Generic.HashSet<int> uniqueNumbers = new System.Collections.Generic.HashSet<int>(); uniqueNumbers.Add(5); uniqueNumbers.Add(10); uniqueNumbers.Add(5); // Duplikat nie zostanie dodany
- Drzewo (Tree): Struktura hierarchiczna z korzeniem i potomkami.