დაკავშირებული სიის სამეურვეო: – დავიწყოთ მონაცემთა დინამიური შენახვით

გამჟღავნება: თქვენი მხარდაჭერა ხელს უწყობს საიტის მუშაობას! ჩვენ ვიღებთ რეფერალის გადასახადს ზოგიერთი სერვისის შესახებ, რომელსაც გირჩევთ ამ გვერდზე.


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

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

ქვემოთ შეიტყობთ, რა არის დაკავშირებული სიები, რატომ არის ისინი ღირებული და როგორ შექმნათ ისინი. ჩვენ ასევე შევთავაზებთ რამდენიმე დამატებით რესურსს თქვენი განათლების შემდგომი განვითარებაში.

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

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

კონცეფციის გარკვევაში, მაგალითისთვის კომპიუტერული ტექნოლოგიის მიღმა შეგიძლიათ ნახოთ:

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

მას შემდეგ, რაც კვანძები ერთმანეთისგან დამოუკიდებლად არსებობს, გარდა მაჩვენებლების ურთიერთობის გარდა, ძალიან ადვილია მათი დამატება, წაშლა და გადაადგილება.

დაკავშირებული სიების ტიპები

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

1. ერთიანი დაკავშირებული სია

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

2. ეჭვმიტანილი სია

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

3. მრავალმხრივი სია

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

4. წრიული დაკავშირებული სია

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

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

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

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

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

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

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

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

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

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

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

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

კვანძის სტრუქტურის შექმნა

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

სტრუქტურული კვანძი {
სტრიქონის სახელი [32];
ინ სიჩქარე;
სტრუქტურის კვანძი * შემდეგი;
}

აქ მთავარია შემდეგი მაჩვენებელი, რაც საშუალებას გვაძლევს, ვიმუშაოთ ჩამონათვალის საშუალებით.

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

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

ამის შემდეგ შეგიძლიათ შეავსოთ ინფორმაცია ამ კვანძისთვის: დასაქმებულის სახელი და მათი აკრეფის სიჩქარე.

კვანძის ჩასმა

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

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

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

მეორეს მხრივ, თუ თანამშრომელი დაქირავებული იქნებოდა აკრეფის სიჩქარით ნაკლები ვიდრე კარენთან, მათთვის კვლავ შეიქმნებოდა კვანძი. მაგრამ შემდეგ კარენის შემდეგი მიუთითებს ახალ თანამშრომელზე, ხოლო ახალი თანამშრომლის შემდეგი მიუთითებს NULL- ზე.

კვანძის წაშლა

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

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

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

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

  • მონაცემთა სტრუქტურები და ალგორითმები Made Easy (2016) by Narasimha Karumanchi: შესანიშნავი წიგნი მონაცემთა სტრუქტურების შესახებ, რომელიც გადაგიყვანთ დაკავშირებულ სიებს..
  • დაკავშირებული სიების საფუძვლები (PDF): ეს 26 გვერდი PDF მოგაწვდით ყველაფერს, რაც კი გსურთ, რომ იცოდეთ ფსევდო კოდური და C ენის მაგალითები..
  • მონაცემთა სტრუქტურების ნაზი შესავალი: ეს მარტივი შესავალი თქვენს პირველ რიგში ჩამოთვლილ სიას პროგრამის შექმნის გზით მიგიღებთ.
  • Linked List Tutorials: ეს არის 7 მოკლემეტრაჟიანი ვიდეო კრებული, C– ში დაკავშირებული სიების შექმნაზე++.
  • Learn-C.org დაუკავშირდა სიების გვერდი: ეს გვერდი გიძიებთ მარტივ C ენასთან დაკავშირებული სიის შექმნას.
  • მონაცემთა სტრუქტურები Javascript– ით: შეიტყვეთ დაკავშირებული სიები თქვენი ბრაუზერის შიგნით, ამ JavaScript– ის სახელმძღვანელოს საშუალებით.

Შემაჯამებელი

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

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map