რა მონაცემთა სტრუქტურები არსებობს?
sobes.tech AI
პასუხი AI-სგან
მასივები, სია, სტეკები, რიგები, ხეები, გრაფები, ჰეშ-ცხრილები.
მასივი: ერთ ტიპის ელემენტების კოლექცია, რომელიც ინახება მეხსიერების მიმდებარე უჯრებში. წვდომა ინდექსით.
სია: ელემენტების სერიული კოლექცია. შეიძლება იყოს მარტივი ან ორმხრივი დაკავშირებული. დამატება/წაშლა შუაში უფრო ეფექტურია, ვიდრე მასივში.
სტეკი: LIFO (Last-In, First-Out) სტრუქტურა. ოპერაციები: push (დამატება), pop (მოკლება ბოლოიდან), peek (მხედველობა ზედა ელემენტზე).
რიგი: FIFO (First-In, First-Out) სტრუქტურა. ოპერაციები: enqueue (დამატება ბოლოს), dequeue (მოკლება დასაწყისიდან), peek (პირველი ელემენტის ნახვა).
ხე: ჰიერქრიული მონაცემთა სტრუქტურა. ფესვი, კვანძები, შთამომავლები. მაგალითი: ბინარული ძიების ხე.
გრაფი: ვერტიკალების (კვანძების) ნაკრები, რომლებიც დაკავშირებულია კიდეებით. შეიძლება იყოს მიმართულებული ან არამიმართულებელი, წონიანი ან ულითმეტო.
ჰეშ-ცხრილი: გასაღები-ღირებულების წყვილების კოლექცია. იყენებს ჰეშ-ფუნქციას სწრაფი წვდომისთვის (საშუალოდ). შეიძლება იყოს კოლიზიები.
iOS-ში გამოყენების მაგალითები:
- მასივები:
Array - სიები: არ არსებობს შიდა კლასი, რეალიზება ხდება მასივების ან მომხმარებლის მიერ შექმნილი სტრუქტურების საფუძველზე
- სტეკები/რიგები: რეალიზება ხდება მასივების ან სიების საფუძველზე
- ხეები: გამოიყენება ჩარჩოებში, მაგალითად, UI-ში (ხილვის ჰიერქრია)
- გრაფები: კავშირების გამოსახატავად, მაგალითად, ქსელებში
- ჰეშ-ცხრილები:
Dictionary,Set
// მაგალითი მასივი
let numbers = [1, 2, 3, 4, 5]
print(numbers[0]) // წვდომა ინდექსით
// მაგალითი სიტყვოვნება (ჰეშ-ცხრილი)
let grades = ["Alice": 95, "Bob": 88]
print(grades["Alice"] ?? 0) // წვდომა გასაღებით