بررسی اجمالی Linked List ها

دوشنبه 15 تیر 1394

در این مقاله Linked List ها (لیست های پیوندی) بررسی خواهند شد. هدف از 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();    
        }    
    
            
    
    }    
    
}

سپس خروجی ما چنین خواهد شد :


آموزش سی شارپ

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 2k بازدید
  • 0 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

تاکنون هیچ کاربری از این پست تشکر نکرده است

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید