Sobes.tech
Junior

Ի՞նչ տվյալների կառուցվածքներ կան:

sobes.tech AI

Պատասխան AI-ից

Արreyներ, ցանկեր, stackեր, հերթեր, ծառեր, գրաֆներ, hash աղյուսակներ:

Արrey: Միասնական տիպի տարրերի հավաքածու, պահվում է հարևան հիշողության բջիջներում: Հասանելի է ինդեքսով:

Ցանկ: Տարրերի հաջորդական հավաքածու: Կարող է լինել միակողմանի կամ երկկողմանի կապակցված: Միջինտեղ ավելացնելը/ջնջելը ավելի արդյունավետ է, քան array-ով:

Stack: LIFO (Last-In, First-Out) կառուցվածք: Օպերացիաներ՝ push (ավելացնել), pop (հեռացնել վերջից), peek (դիտել վերևի տարրը):

Հետ: FIFO (First-In, First-Out) կառուցվածք: Օպերացիաներ՝ enqueue (ավելացնել վերջում), dequeue (հեռացնել սկզբից), peek (դիտել առաջին տարրը):

Դ дерево: Տվյալների հիերարխիկ կառուցվածք: Մարմին, հանգույցներ, ժառանգներ: Օրինակ՝ երկկողմանի որոնման ծառ:

Գրաֆ: Վերևների (հանգույցների) հավաքածու, որոնք կապված են եզրերով: Կարող է լինել ուղղորդված կամ ուղղորդված չլինող, ծանրաբեռնված կամ ոչ:

Hash աղյուսակ: Կազմած զույգեր՝ բանալի-արժեք: Օգտագործում է hash ֆունկցիա արագ մուտք գործելու համար (համեմատաբար): Միջանկյալ կարող են լինել բախումներ:

Օգտագործման օրինակներ iOS-ում:

  • Արreyներ: Array
  • Ցանկեր: չկա ներքին դաս, իրականացվում է array-ների կամ հատուկ կառուցվածքների հիման վրա
  • Stackեր/Հետեր: իրականացվում են array-ների կամ ցանկերի հիման վրա
  • Դերևներ: օգտագործվում են ֆրեյմվորկներում, օրինակ՝ UI-ում (դիտարկումների հիերարխիա)
  • Գրաֆներ: կապերի ներկայացման համար, օրինակ՝ ցանցեր
  • Hash աղյուսակներ: Dictionary, Set
// Օրինակ array
let numbers = [1, 2, 3, 4, 5]
print(numbers[0]) // Հասանելիություն ինդեքսով

// Օրինակ բառարան (hash աղյուսակ)
let grades = ["Alice": 95, "Bob": 88]
print(grades["Alice"] ?? 0) // Հասանելիություն բանալիով