Junior
Kokios duomenų struktūros egzistuoja?
sobes.tech AI
Atsakymas iš AI
Duomenų struktūros skirstomos į dvi pagrindines kategorijas:
-
Lininės: Elementai išdėstyti sekos tvarka.
- Masivas (Array): Fiksuoto dydžio, tiesioginis prieigos būdas pagal indeksą.
int[] numbers = { 1, 2, 3, 4, 5 }; // Pavyzdys deklaracijos - Sąrašas (List): Dinaminio dydžio, elementai pridedami ir pašalinami.
System.Collections.Generic.List<string> names = new System.Collections.Generic.List<string>(); names.Add("Alice"); names.Add("Bob"); - Susijęs sąrašas (Linked List): Elementai (mazgai) turi nuorodą į sekantį (ir galbūt ankstesnį) elementą.
- Vienpusiai
- Dvipusiai
System.Collections.Generic.LinkedList<char> letters = new System.Collections.Generic.LinkedList<char>(); letters.AddLast('A'); letters.AddLast('B'); - ** Stekas (Stack)**: Paskutinis atėjo - pirmas išeina (LIFO).
System.Collections.Generic.Stack<int> stack = new System.Collections.Generic.Stack<int>(); stack.Push(10); // Prideda elementą į viršų int item = stack.Pop(); // Pašalina ir grąžina elementą iš viršaus - Eilė (Queue): Pirmas atėjo - pirmas išeina (FIFO).
System.Collections.Generic.Queue<string> queue = new System.Collections.Generic.Queue<string>(); queue.Enqueue("Task 1"); // Prideda elementą į galą string task = queue.Dequeue(); // Pašalina ir grąžina elementą iš pradžios
- Masivas (Array): Fiksuoto dydžio, tiesioginis prieigos būdas pagal indeksą.
-
Nelinearės: Elementai nėra išdėstyti sekos tvarka.
- Medis (Tree): Hierarchinė struktūra su šaknimi ir palikuonimis.
- Dviejų krypčių medis
- B-medžio
- Raudonai juodas medis
- AVL medis
- Tinklas (Graph): Vertsnių (mazgų) ir briaunų (ryšių) rinkinys.
- Kryptinis (Directed)
- Nekryptinis (Undirected)
- Hash lentelė (Hash Table) / Žodynas (Dictionary): Laiko paieškai naudojama raktas-reikšmė pora.
System.Collections.Generic.Dictionary<string, int> ageByName = new System.Collections.Generic.Dictionary<string, int>(); ageByName.Add("Charlie", 30); int age = ageByName["Charlie"]; // Greita prieiga pagal raktą - ** Rinkinys (Set)**: Unikalūs elementai be nustatyto tvarkos.
System.Collections.Generic.HashSet<int> uniqueNumbers = new System.Collections.Generic.HashSet<int>(); uniqueNumbers.Add(5); uniqueNumbers.Add(10); uniqueNumbers.Add(5); // Dublikatas nebus pridėtas
- Medis (Tree): Hierarchinė struktūra su šaknimi ir palikuonimis.