Junior
Milyen adatstruktúrák léteznek?
sobes.tech MI
Válasz az MI-től
Az adatszerkezetek két fő kategóriába sorolhatók:
-
Lineárisak: Az elemek egymás után helyezkednek el.
- Tömb (Array): Fix méretű, közvetlen hozzáférés index alapján.
int[] numbers = { 1, 2, 3, 4, 5 }; // Példa deklaráció - Lista (List): Dinamikus méretű, az elemek hozzáadása és törlése lehetséges.
System.Collections.Generic.List<string> names = new System.Collections.Generic.List<string>(); names.Add("Alice"); names.Add("Bob"); - Láncolt lista (Linked List): Az elemek (csomópontok) hivatkozást tartalmaznak a következőre (és esetleg az előzőre).
- Egyszerű láncolt
- Kétszeresen láncolt
System.Collections.Generic.LinkedList<char> letters = new System.Collections.Generic.LinkedList<char>(); letters.AddLast('A'); letters.AddLast('B'); - Verem (Stack): Utolsóként be, elsőként ki (LIFO).
System.Collections.Generic.Stack<int> stack = new System.Collections.Generic.Stack<int>(); stack.Push(10); // Elem hozzáadása a tetejére int item = stack.Pop(); // Elem eltávolítása és visszaadása - Sor (Queue): Elsőként be, elsőként ki (FIFO).
System.Collections.Generic.Queue<string> queue = new System.Collections.Generic.Queue<string>(); queue.Enqueue("Feladat 1"); // Elem hozzáadása a végéhez string task = queue.Dequeue(); // Elem eltávolítása a kezdetről
- Tömb (Array): Fix méretű, közvetlen hozzáférés index alapján.
-
Nem lineárisak: Az elemek nem egymás után helyezkednek el.
- Fa (Tree): Hierarchikus struktúra gyökércsomóponttal és leszármazottakkal.
- Kétágu fa
- B-fa
- Piros-fekete fa
- AVL fa
- Graf (Graph): Csúcsok (csomópontok) és élek (kapcsolatok) halmaza.
- Irányított (Directed)
- Irányítatlan (Undirected)
- Hash-tábla (Hash Table) / Szótár (Dictionary): Párokat tárol kulcs-érték formában, gyors keresést biztosítva hash függvény segítségével.
System.Collections.Generic.Dictionary<string, int> ageByName = new System.Collections.Generic.Dictionary<string, int>(); ageByName.Add("Charlie", 30); int age = ageByName["Charlie"]; // Gyors hozzáférés kulcs alapján - Halmaz (Set): Egyedi elemek gyűjteménye, nem meghatározott sorrendben.
System.Collections.Generic.HashSet<int> uniqueNumbers = new System.Collections.Generic.HashSet<int>(); uniqueNumbers.Add(5); uniqueNumbers.Add(10); uniqueNumbers.Add(5); // A duplikátum nem kerül hozzáadásra
- Fa (Tree): Hierarchikus struktúra gyökércsomóponttal és leszármazottakkal.