بررسی اجمالی Linked List ها
دوشنبه 15 تیر 1394در این مقاله Linked List ها (لیست های پیوندی) بررسی خواهند شد. هدف از Linked List فراهم کردن مجموعه ای از داده که به سادگی قابلیت اضافه و حذف کردن آیتم داشته باشند.
Linked List ها (لیست های پیوندی) دارای یک قسمت آدرس جدا از قسمت داده می باشند که در آن رفرنس شاخه (node) بعدی ذخیره شده است و این ادامه دارد. در مورد Linked List های مضاعف هم به این گونه است با این تفاوت که در ابتدا و انتهای آن رفرنس داده قبلی و بعدی وجود دارد. بنابراین می توان به تمام لیست دسترسی داشت.
Linked List ها دارای ویژگی های زیادی هستند :
اضافه و حذف المنت ها بسیار سریع انجام می شود.
سرشماری آنها ساده است.
برای دسترسی به المنت ها ایندکس گذاری وجود ندارد.
Linked List ها در مصرف حافظه خوب نیستند و حافظه نسبتا بیشتری استفاده می کنند.
حالا در مثال بعدی یک کد Linked List داریم اما نکته ای که باید به یاد داشته باشید این است که در Linked List ها مقدار دهی اولیه برای دادن مقدار به آیتم ها وجود ندارد. در زیر کدهای پیشنهادی برنامه برای لیست را می بینیم.
using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System; namespace Collections { internal class LinkedList { private static void Main(string[] args) { var monthsofYear = new LinkedList<string>(); monthsofYear.AddLast("January"); monthsofYear.AddLast("February"); monthsofYear.AddLast("April"); monthsofYear.AddLast("May"); monthsofYear.AddLast("June"); monthsofYear.AddLast("July"); monthsofYear.AddLast("August"); monthsofYear.AddLast("September"); monthsofYear.AddLast("October"); monthsofYear.AddLast("November"); monthsofYear.AddLast("December"); foreach (var month in monthsofYear) { Console.WriteLine(month); } Console.ReadLine(); } } }
اگر کد را ببینید می بینید که ماه march در مجموعه جا انداخته شده است. حال ببینیم که چگئنه این کلمه را می توان به وسط LinkedList اضافه کرد. برای این کار باید از عبارت Add/After استفاده کرد.
بنابراین داریم :
using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System; namespace Collections { internal class LinkedList { private static void Main(string[] args) { var monthsofYear = new LinkedList<string>(); monthsofYear.AddLast("January"); monthsofYear.AddLast("February"); //find the reference LinkedListNode<string> feb = monthsofYear.Find("February"); //pass the reference monthsofYear.AddAfter(feb, "March"); monthsofYear.AddLast("April"); monthsofYear.AddLast("May"); monthsofYear.AddLast("June"); monthsofYear.AddLast("July"); monthsofYear.AddLast("August"); monthsofYear.AddLast("September"); monthsofYear.AddLast("October"); monthsofYear.AddLast("November"); monthsofYear.AddLast("December"); foreach (var month in monthsofYear) { Console.WriteLine(month); } Console.ReadLine(); } } }
سپس خروجی ما چنین خواهد شد :
- C#.net
- 2k بازدید
- 0 تشکر