Intern
Kādas ir datu struktūras?
sobes.tech AI
Atbilde no AI
Galvenās datu struktūras ir šādas:
Primārās (Primitive):
- Veseli skaitļi (Integer)
- Peldošā punkta skaitļi (Floating-point numbers)
- Boolea vērtības (Boolean)
- Rakstzīmes (Character)
Abstraktās (Abstract):
- Masīvs (Array): Sakārtota vienāda veida elementu kolekcija, piekļuve pēc indeksa ar pastāvīgu laiku.
- Saistīts saraksts (Linked List): Kopa mezglu, katrs satur datus un saiti uz nākamo mezglu. Pievienošanas/noņemšanas operācijas sākumā/beigās ir efektīvas, piekļuve pēc indeksa - $O(n)$.
- Vienkāršs saistīts saraksts (Singly Linked List)
- Dubultsaistīts saraksts (Doubly Linked List)
- Cirkulārs saistīts saraksts (Circular Linked List)
- Steks (Stack): Datu struktūra LIFO (Last-In, First-Out). Operācijas: push (pievienošana), pop (noņemšana), peek (skats uz augšējo elementu).
struct Stack<Element> { private var elements: [Element] = [] mutējoša func push(_ element: Element) { elements.append(element) } mutējoša func pop() -> Element? { return elements.popLast() } func peek() -> Element? { return elements.last } var isEmpty: Bool { return elements.isEmpty } } - Rinda (Queue): FIFO (First-In, First-Out) datu struktūra. Operācijas: enqueue (pievienošana), dequeue (noņemšana), peek (skats uz pirmo elementu).
struct Queue<Element> { private var elements: [Element] = [] mutējoša func enqueue(_ element: Element) { elements.append(element) } mutējoša func dequeue() -> Element? { guard !elements.isEmpty else { return nil } return elements.removeFirst() } func peek() -> Element? { return elements.first } var isEmpty: Bool { return elements.isEmpty } } - Hesē tabula (Hash Table) / Vārds (Dictionary) / Asociatīvais masīvs (Associative Array): Pāru "atslēga-vērtība" kolekcija, kas ļauj efektīvi meklēt, pievienot un dzēst pēc atslēgas, izmantojot hesē funkciju.
var dictionary = [String: Any]() // Piemērs vārdnīcai Swift dictionary["key1"] = "value1" let value = dictionary["key1"] - Kopa (Set): Neordinēta unikālu elementu kolekcija. Atbalsta operācijas: pievienošana, dzēšana, pārbaude par eksistenci, apvienošana, šķēle, atšķirība.
var set: Set<Int> = [1, 2, 3] // Piemērs kopai Swift set.insert(4) let containsTwo = set.contains(2) - Koks (Tree): Hierarhiska datu struktūra, kas sastāv no mezgliem, kas savienoti ar malām. Ir saknes mezgls un bērnu mezgli.
- Binārais koks (Binary Tree)
- Binārais meklēšanas koks (Binary Search Tree - BST)
- Saskaņots binārais koks (Balanced Binary Tree) - AVL, sarkano-melno koks.
- B-koks (B-Tree)
- Zīmējums (Graph): Vērtību kopums (mezgli) un malām (saistības), kas savieno mezglus. Var būt virzīts vai nevirzīts, sverams vai nesverams.
Šo datu struktūru izpratne ir kritiska efektīvas un mērogojamas koda rakstīšanai. Pareizas datu struktūras izvēle ir atkarīga no operāciju veiktspējas prasībām (meklēšana, ievietošana, dzēšana) un datu rakstura.