სხვაობა მასივებსა და დაკავშირებულ სიებს შორის

სხვაობა მასივებსა და დაკავშირებულ სიებს შორის
სხვაობა მასივებსა და დაკავშირებულ სიებს შორის

ვიდეო: სხვაობა მასივებსა და დაკავშირებულ სიებს შორის

ვიდეო: სხვაობა მასივებსა და დაკავშირებულ სიებს შორის
ვიდეო: გოგონას გაუჩინარება გადაწყდა [Bobbi-Anne McLeod] 2024, ივლისი
Anonim

მასივები vs დაკავშირებული სიები

მასივები არის ყველაზე ხშირად გამოყენებული მონაცემთა სტრუქტურა ელემენტების კოლექციის შესანახად. პროგრამირების ენების უმეტესობა იძლევა მეთოდებს, რათა ადვილად გამოაცხადოთ მასივები და წვდომა ელემენტების მასივებში. მიბმული სია, უფრო ზუსტად ცალმხრივად დაკავშირებული სია, ასევე არის მონაცემთა სტრუქტურა, რომელიც შეიძლება გამოყენებულ იქნას ელემენტების კოლექციის შესანახად. იგი შედგება კვანძების თანმიმდევრობისგან და თითოეულ კვანძს აქვს მითითება მიმდევრობის შემდეგ კვანძზე.

ნაჩვენებია ფიგურაში 1, არის კოდის ნაწილი, რომელიც ჩვეულებრივ გამოიყენება მასივისთვის მნიშვნელობების დეკლარაციისა და მინიჭებისთვის. სურათი 2 ასახავს, როგორ გამოიყურებოდა მასივი მეხსიერებაში.

გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება

ზემოთ კოდი განსაზღვრავს მასივს, რომელსაც შეუძლია შეინახოს 5 მთელი რიცხვი და მათზე წვდომა ხდება 0-დან 4-მდე ინდექსების გამოყენებით. მასივის ერთ-ერთი მნიშვნელოვანი თვისებაა ის, რომ მთელი მასივი გამოიყოფა როგორც მეხსიერების ერთი ბლოკი და თითოეულ ელემენტს აქვს საკუთარი სივრცე. მასივში. მასივის განსაზღვრის შემდეგ, მისი ზომა ფიქსირდება. ასე რომ, თუ კომპილაციის დროს არ ხართ დარწმუნებული მასივის ზომაში, მოგიწევთ განსაზღვროთ საკმარისად დიდი მასივი, რომ იყოს უსაფრთხო მხარეს. მაგრამ, უმეტესად ჩვენ რეალურად ვაპირებთ გამოვიყენოთ ელემენტების ნაკლები რაოდენობა, ვიდრე გამოვყავით. ასე რომ, მეხსიერების მნიშვნელოვანი რაოდენობა რეალურად იკარგება. მეორეს მხრივ, თუ „საკმარისად დიდი მასივი“საკმარისად დიდი არ არის, პროგრამა ავარიულად დაიშლება.

მიბმული სია ანაწილებს მეხსიერებას თავის ელემენტებს ცალ-ცალკე მეხსიერების საკუთარ ბლოკში და მთლიანი სტრუქტურა მიიღება ამ ელემენტების, როგორც ჯაჭვის ბმულების დაკავშირებით.დაკავშირებულ სიაში თითოეულ ელემენტს აქვს ორი ველი, როგორც ეს ნაჩვენებია სურათზე 3. მონაცემთა ველი ინახავს რეალურ შენახულ მონაცემებს, ხოლო შემდეგი ველი შეიცავს მითითებას ჯაჭვის შემდეგ ელემენტზე. დაკავშირებული სიის პირველი ელემენტი ინახება, როგორც დაკავშირებული სიის თავში.

მონაცემები შემდეგი

სურათი 3: დაკავშირებული სიის ელემენტი

გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება

სურათი 4 ასახავს დაკავშირებულ სიას სამი ელემენტით. თითოეული ელემენტი ინახავს თავის მონაცემებს და ყველა ელემენტი უკანასკნელის გარდა ინახავს მითითებას მომდევნო ელემენტზე. ბოლო ელემენტს აქვს null მნიშვნელობა მის შემდეგ ველში. სიის ნებისმიერ ელემენტზე წვდომა შესაძლებელია სათავედან დაწყებით და შემდეგი მაჩვენებლის შემდეგ, სანამ არ დააკმაყოფილებთ საჭირო ელემენტს.

მიუხედავად იმისა, რომ მასივები და დაკავშირებული სიები მსგავსია იმ გაგებით, რომ ორივე მათგანი გამოიყენება ელემენტების კოლექციის შესანახად, ისინი განიცდიან განსხვავებებს იმ სტრატეგიების გამო, რომლებსაც იყენებენ მეხსიერების მის ელემენტებზე გადანაწილებისთვის. მასივები ანაწილებენ მეხსიერებას მის ყველა ელემენტს, როგორც ერთ ბლოკს და მასივის ზომა უნდა განისაზღვროს გაშვების დროს. ეს გახდის მასივებს არაეფექტურს იმ სიტუაციებში, როდესაც თქვენ არ იცით მასივის ზომა კომპილაციის დროს. ვინაიდან დაკავშირებული სია თავის ელემენტებს ცალ-ცალკე ანაწილებს მეხსიერებას, ეს ბევრად ეფექტური იქნება იმ სიტუაციებში, როდესაც თქვენ არ იცით სიის ზომა შედგენის დროს. დაკავშირებულ სიაში ელემენტების დეკლარაცია და წვდომა არ იქნება პირდაპირი, ვიდრე პირდაპირ წვდებით მასივის ელემენტებს მისი ინდექსების გამოყენებით.

გირჩევთ: