Skip to main content

rust_algorithms/data_structures/
mod.rs

1//! # Ma'lumotlar strukturalari (Data Structures)
2//!
3//! Darslik: `05-data-structures/`
4//!
5//! Algoritm — bu **retsept**, ma'lumotlar strukturasi — **idish**.
6//! To'g'ri idishni tanlash ko'pincha algoritmni tanlashdan muhimroq.
7//!
8//! | Struktura | Qo'shish | O'chirish | Qidirish | Tartib | Qachon kerak |
9//! |---|---|---|---|---|---|
10//! | `Vec<T>` (massiv) | O(1)\* oxiriga | O(n) | O(n) / O(log n)† | Bor | Deyarli har doim |
11//! | [`Stack`] | O(1) | O(1) | O(n) | LIFO | Orqaga qaytish, qavslar, DFS |
12//! | [`Queue`] | O(1) | O(1) | O(n) | FIFO | Navbat, BFS |
13//! | [`MinHeap`] | O(log n) | O(log n) | O(1) min | Qisman | Prioritet, Dijkstra |
14//! | [`HashTable`] | O(1) o'rt. | O(1) o'rt. | O(1) o'rt. | Yo'q | Kalit → qiymat |
15//! | [`DisjointSet`] | — | — | ~O(1) | — | Guruhlar, Kruskal |
16//!
17//! \* amortizatsiyalangan; † tartiblangan bo'lsa binary search bilan.
18//!
19//! > **Amalda:** `Vec`, `VecDeque`, `BinaryHeap`, `HashMap`, `BTreeMap` — standart
20//! > kutubxonadagi tayyor va optimallashtirilgan variantlardan foydalaning.
21//! > Bu yerdagi implementatsiyalar **ichida nima borligini** ko'rsatish uchun.
22
23mod disjoint_set;
24mod hash_table;
25mod heap;
26mod queue;
27mod stack;
28
29pub use disjoint_set::DisjointSet;
30pub use hash_table::HashTable;
31pub use heap::MinHeap;
32pub use queue::Queue;
33pub use stack::{stack_balanced_brackets, Stack};