Intern
Ի՞նչ տվյալների կառուցվածքներ կան:
sobes.tech AI
Պատասխան AI-ից
Ահա հիմնական տվյալների կառուցվածքների ցանկը՝
Առաջինային (Primitive):
- Թիվեր (Integer)
- Տարածական թվեր (Floating-point numbers)
- Բուլյան արժեքներ (Boolean)
- Նիշեր (Character)
Աբստրակտ (Abstract):
- Արrey (Array): Հերթական հավաքածու միատեսակ տարրերից, հասանելիություն ինդեքսով՝ կայուն ժամանակով:
- Կապակցված ցանկ (Linked List): Կապակցված հանգույցների հավաքածու, որոնցից յուրաքանչյուրը պարունակում է տվյալներ և հղում հաջորդ հանգույցին։ Էֆեկտիվ է սկզբից/վերջից ավելացնելը/հեռացումը, ինդեքսով հասանելիությունը՝ $O(n)$:
- Միակողմանի կապակցված ցանկ (Singly Linked List)
- Երկկողմանի կապակցված ցանկ (Doubly Linked List)
- Շրջանաձև կապակցված ցանկ (Circular Linked List)
- Ստակ (Stack): Տվյալների կառուցվածք LIFO (Last-In, First-Out): Օպերացիաներ՝ push (ավելացնել), pop (հեռացնել), peek (վերևի տարրին դիտել):
struct Stack<Element> { private var elements: [Element] = [] mutating func push(_ element: Element) { elements.append(element) } mutating func pop() -> Element? { return elements.popLast() } func peek() -> Element? { return elements.last } var isEmpty: Bool { return elements.isEmpty } } - Կատար (Queue): Տվյալների FIFO կառուցվածք: Օպերացիաներ՝ enqueue (ավելացնել), dequeue (հեռացնել), peek (առաջին տարրին դիտել):
struct Queue<Element> { private var elements: [Element] = [] mutating func enqueue(_ element: Element) { elements.append(element) } mutating func dequeue() -> Element? { guard !elements.isEmpty else { return nil } return elements.removeFirst() } func peek() -> Element? { return elements.first } var isEmpty: Bool { return elements.isEmpty } } - Հեշ-թաբլ (Hash Table) / Լեզվական (Dictionary) / Ասոցիատիվ զանգված (Associative Array): Զույգեր "կլուչ-արժեք" հավաքածու, որը թույլ է տալիս արդյունավետ որոնում, ավելացում և հեռացում՝ օգտագործելով հեշ-ֆունկցիա:
var dictionary = [String: Any]() // Swift-ում օրինակ բառարան dictionary["key1"] = "value1" let value = dictionary["key1"] - Համակենտրոնություն (Set): Անցանկացած հավաքածու՝ եզակի տարրերով։ Օպերացիաներ՝ ավելացնել, հեռացնել, ստուգել առկայությունը, միավորում, հատում, տարբերություն:
var set: Set<Int> = [1, 2, 3] // Swift-ում օրինակ հավաքածու set.insert(4) let containsTwo = set.contains(2) - Անվանում (Tree): Հիերարխիկ կառուցվածք՝ հանգույցներից, որոնք կապված են ճյուղերով։ Ունի արմատային հանգույց և ենթահանգույցներ:
- Երկբառ (Binary Tree)
- Երկբառ որոնողական ծառ (Binary Search Tree - BST)
- Բալանսավորված երկբառ (Balanced Binary Tree) - AVL, կարմիր-սև ծառ
- B-ծառ (B-Tree)
- Գրաֆ (Graph): Վերևների (հանգույցների) և ճյուղերի (կապերի) հավաքածու, որոնք կապում են վերևները։ Կարող է լինել ուղղորդված կամ ուղղորդված չլինող, ծանրաբեռնված կամ առանց ծանրաբեռնված:
Այս կառուցվածքների ըմբռնումը կարևոր է արդյունավետ և մասշտաբային կոդ գրելու համար։ Ճիշտ տվյալների կառուցվածքի ընտրությունը կախված է գործողությունների կատարողականության պահանջներից (որոնում, ավելացում, հեռացում) և տվյալների բնույթից։