Skip to main content

Module data_structures

Module data_structures 

Source
Expand description

§Ma’lumotlar strukturalari (Data Structures)

Darslik: 05-data-structures/

Algoritm — bu retsept, ma’lumotlar strukturasi — idish. To’g’ri idishni tanlash ko’pincha algoritmni tanlashdan muhimroq.

StrukturaQo’shishO’chirishQidirishTartibQachon kerak
Vec<T> (massiv)O(1)* oxirigaO(n)O(n) / O(log n)†BorDeyarli har doim
StackO(1)O(1)O(n)LIFOOrqaga qaytish, qavslar, DFS
QueueO(1)O(1)O(n)FIFONavbat, BFS
MinHeapO(log n)O(log n)O(1) minQismanPrioritet, Dijkstra
HashTableO(1) o’rt.O(1) o’rt.O(1) o’rt.Yo’qKalit → qiymat
DisjointSet~O(1)Guruhlar, Kruskal

* amortizatsiyalangan; † tartiblangan bo’lsa binary search bilan.

Amalda: Vec, VecDeque, BinaryHeap, HashMap, BTreeMap — standart kutubxonadagi tayyor va optimallashtirilgan variantlardan foydalaning. Bu yerdagi implementatsiyalar ichida nima borligini ko’rsatish uchun.

Structs§

DisjointSet
Kesishmaydigan to’plamlar strukturasi: elementlarni guruhlarga birlashtiradi va “bu ikkovi bir guruhdami?” savoliga deyarli O(1) da javob beradi.
HashTable
Zanjirlash (separate chaining) usulidagi xesh-jadval.
MinHeap
Min-heap: eng kichik element har doim tepada.
Queue
Halqasimon bufer (ring buffer) asosidagi navbat.
Stack
Stack — bir uchidan qo’shiladigan va o’sha uchidan olinadigan to’plam.

Functions§

stack_balanced_brackets
Stackning klassik qo’llanilishi: qavslar to’g’ri joylashganini tekshirish.