Junior
Кои съществуват структури от данни?
sobes.tech AI
Отговор от AI
Структурите от данни се делят на две основни категории:
-
Линейни: Елементите са подредени последователно.
- Масив (Array): Фиксиран размер, директен достъп по индекс.
int[] numbers = { 1, 2, 3, 4, 5 }; // Пример за декларация - Списък (List): Динамичен размер, елементите се добавят и премахват.
System.Collections.Generic.List<string> names = new System.Collections.Generic.List<string>(); names.Add("Alice"); names.Add("Bob"); - Свързан списък (Linked List): Елементите (възлите) съдържат препратка към следващия (и, може би, предишния) елемент.
- Едносвързан
- Двусвързан
System.Collections.Generic.LinkedList<char> letters = new System.Collections.Generic.LinkedList<char>(); letters.AddLast('A'); letters.AddLast('B'); - Стек (Stack): Последният елемент, който е добавен, е първият, който се премахва (LIFO).
System.Collections.Generic.Stack<int> stack = new System.Collections.Generic.Stack<int>(); stack.Push(10); // Добавя елемент на върха int item = stack.Pop(); // Премахва и връща елемента от върха - Опашка (Queue): Първият елемент, който е добавен, е първият, който се премахва (FIFO).
System.Collections.Generic.Queue<string> queue = new System.Collections.Generic.Queue<string>(); queue.Enqueue("Task 1"); // Добавя елемент в края string task = queue.Dequeue(); // Премахва и връща елемента от началото
- Масив (Array): Фиксиран размер, директен достъп по индекс.
-
Нелинейни: Елементите не са подредени последователно.
- Дърво (Tree): Иерархична структура с коренов възел и потомци.
- Двоично дърво
- B-дерво
- Червено-черно дърво
- AVL дърво
- Граф (Graph): Колекция от върхове (възли) и ребра (връзки) между тях.
- Насочен (Directed)
- Ненасочен (Undirected)
- Хеш таблица (Hash Table) / Дърво (Dictionary): Съдържат двойки ключ-стойност, използващи хеш-функция за бързо търсене.
System.Collections.Generic.Dictionary<string, int> ageByName = new System.Collections.Generic.Dictionary<string, int>(); ageByName.Add("Charlie", 30); int age = ageByName["Charlie"]; // Бърз достъп по ключ - Множество (Set): Колекция от уникални елементи без определен ред.
System.Collections.Generic.HashSet<int> uniqueNumbers = new System.Collections.Generic.HashSet<int>(); uniqueNumbers.Add(5); uniqueNumbers.Add(10); uniqueNumbers.Add(5); // Дубликат няма да бъде добавен
- Дърво (Tree): Иерархична структура с коренов възел и потомци.