Linked List یا لیست پیوندی در سی شارپ چیست؟
LinkedList یا لیست پیوندی در سی شارپ یک ساختار داده خطی است که عنصر را در مکان غیر پیوسته ذخیره می کند. عناصر موجود در یک لیست پیوندی با استفاده از نشانگرها با یکدیگر مرتبط می شوند. یا به عبارت دیگر، LinkedList شامل گره هایی است که هر گره حاوی یک فیلد داده و یک مرجع (پیوند) به گره بعدی در لیست است. در سی شارپ، LinkedList یک نوع مجموعه جنریک است که در فضای نام System.Collections.Generic تعریف شده است. لیست پیوندی یا LinkedList دارای پیوند دوگانه است، بنابراین، هر گره به سمت جلو به گره بعدی و به سمت عقب به گره قبلی اشاره می کند. LinkedList یا لیست پیوندی در سی شارپ یک مجموعه پویا است که با توجه به نیاز برنامه شما رشد می کند و درج و حذف سریع عناصر را فراهم می کند.
در LinkedList یا لیست پیوندی در سی شارپ هر گره آدرس گره بعدی را نگه می دارد. اولین عنصر به head pointer و عنصر آخر به null اشاره می کند. گره های دیگر در این بین نیز آدرس گره بعدی را نگه می دارند و به آن next pointer یا اشاره گر بعدی می گویند.
مزایای LinkedList یا لیست پیوندی در سی شارپ:
- پویا است. از حافظه به صورت پویا استفاده می کند.
- تعیین بعد، که برای آرایه ها اجباری است، برای لیست های پیوندی اجباری نیست. افزایش اندازه به صورت خودکار انجام می شود.
- افزودن یا حذف عناصر به لیست پیوندی سریع است. برای افزودن یا حذف عناصر از لیست در آرایه ها، تمام عناصر موجود در آرایه باید کپی شوند. در لیستهای پیوندی، میتوانیم عناصر را هر کجا که بخواهیم اضافه کنیم و میتوانیم عناصر را از هر کجا که بخواهیم حذف کنیم.
معایب LinkedList یا لیست پیوندی در سی شارپ:
- عملیات حلقه روی لیست پیوندی کندتر از ساختار لیست است.
- از ابتدای لیست جستجو می کند تا به عنصر موجود در فهرست مورد نظر ما در لیست پیوندی دسترسی پیدا کند. همانند آرایه ها، هیچ دسترسی به ایندکس مورد نظر ما وجود ندارد.
- نتیجه تجزیه و تحلیل الگوریتم هنگام دسترسی به یک عنصر متعلق به لیست پیوندی O(n) است.
انواع LinkedList یا لیست پیوندی در سی شارپ
در سی شارپ سه نوع ساختار لیست پیوندی وجود دارد.
لیست پیوندی ساده
یک عملیات یک طرفه هنگام پیمایش در عناصر لیست اعمال می شود. رو به جلو است. مرجع مقدار بعدی را با اشاره گر بعدی حفظ می کند.
لیست پیوند دوگانه
یک عملیات دو طرفه هنگام پیمایش در عناصر لیست اعمال می شود. جلو و عقب است. همچنین یک نشانگر قبلی به همراه نشانگر بعدی وجود دارد. این اشاره گر (قبلی) حرکت رو به عقب را فراهم می کند.
لیست پیوندی دایره ای
اشاره گر بعدی آخرین عنصر به عنصر اول اشاره می کند. همچنین نشانگر prev عنصر اول به آخرین عنصر اشاره می کند. دایره ای نامیده می شود زیرا به شکل یک حلقه پیش می رود.
در سی شارپ روشهای خاصی وجود دارد که میتوانیم به ابتدا یا انتهای LinkedList یا هر جایی که میخواهیم گره اضافه کنیم و دادهها را از هر کجا که می خواهیم حذف کنیم. به نمونه کد های زیر توجه کنید:
نتیجه خروجی لیست پیوندی بالا را می توانید در زیر مشاهده کنید:
Results:
0
1 0
1 0 7
1 0 7 9
1 0 7 9 3
1 0 7 9 3 10
1 0 7 8 9 3 10
1 0 7 8 9 4 3 10
0 7 8 9 4 3 10
0 7 8 9 4 3
0 8 9 4 3
هنگام استفاده از LinkedList در سی شارپ، ویژگی هایی وجود دارد که با استفاده از آن ها می توانیم به عنصر اول و آخر این ساختار یا عنصر قبلی یا آخر این عناصر برسیم و مقادیر آن ها را بخوانیم.
نتیجه LinkedList یا لیست پیوندی را در زیر می توانید مشاهده کنید:
First element:0
Last element:3
Value of the next of the first element 8
Value of the previous of the last element 4
حالا حلقه خود را برای نوشتن عناصر لیست پیوند شده ایجاد کنیم. هر دو حلقه یک نتیجه را خواهد داد.
نتیجه LinkedList یا لیست پیوندی را در زیر می توانید مشاهده کنید:
0
8
9
4
3
نتیجه گیری
ما در این مقاله ساختار LinkedList یا لیست پیوندی در سی شارپ را مورد بررسی قرار دادیم و در مورد نحوه استفاده و ویژگی های آن صحبت کردم.
برای ثبت نظر باید در سایت ثبت نام یا ورود نمایید