1704

LinkedList در سی شارپ

لینک کوتاه https://codecell.ir/a/1704
به اشتراک گذاری
نویسنده:
0
0
0
آموزش های نویسنده:
LinkedList یا لیست پیوندی در سی شارپ

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 یا لیست پیوندی در سی شارپ را مورد بررسی قرار دادیم و در مورد نحوه استفاده و ویژگی های آن صحبت کردم.

 

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

Response Caching در ASP.NET Core

Response Caching یک مکانیزم ذخیره سازی پاسخ سرور توسط مرورگر یا سایر کلاینت ها است. با استفاده از Response Caching در Asp.net Core می توانیم عملکرد و کارایی سیستم را بالا ببریم.

305 0 1402/10/22

Output Caching در ASP.NET Core 8.0

Output Caching یک ویژگی جدید است که از زمان .NET 7 معرفی شده است. این ویژگی به ما این امکان را می دهد که به راحتی یک کش پاسخ برای Web API خود بدون پیاده سازی IMemoryCache راه اندازی کنیم.

354 0 1402/10/14

الگوی طراحی زنجیره مسئولیت در سی شارپ

الگوی زنجیره مسئولیت یا Chain of Responsibility Design Pattern یک الگوی طراحی رفتاری(behavioral design pattern) است که اجازه می‌دهد یک درخواست در امتداد زنجیره‌ای از کنترل‌کننده‌های بالقوه ارسال شود تا زمانی که درخواست مناسب برای پردازش آن را پیدا کند.

338 2 1402/10/01

ViewComponent در ASP.NET Core

در ASP.NET Core با استفاده از ViewComponent ها می توان اجزای ماژولار، قابل استفاده مجدد، قابل نگهداری و مقیاس پذیر برای ساخت برنامه های کاربردی وب ایجاد کرد. در این مقاله به نحوه ایجاد و فراخوانی ViewComponent در Asp.net core پرداخته ایم.

797 2 1402/05/15

تطبیق الگو در NET 7: ساده سازی تجزیه و تحلیل داده ها

تطبیق الگو یا Pattern Matching در net7 یک تکنیک قدرتمند برای تجزیه و تحلیل و دستکاری داده ها بر اساس ساختار آن ها است. تطبیق الگو یا Pattern Matching به توسعه دهندگان اجازه می دهد تا مقادیر را با یک الگوی خاص مطابقت دهند و اقدامات مربوطه را انجام دهند.

480 1 1402/04/05

تزریق وابستگی در ASP.NET Core

تزریق وابستگی (DI) یک الگوی طراحی نرم افزاری است که امکان ایجاد برنامه های کاربردی و ماژولار را فراهم می کند.. در .NET Core تزریق وابستگی یا Dependency injection یک ویژگی مهم است که می تواند برای ساده سازی توسعه برنامه، بهبود تست پذیری و کاهش پیچیدگی کد مورد استفاده قرار گیرد.

1٬161 1 1402/02/04

ضروری ترین کتابخانه های NuGet برای ASP.NET Core

در این مقاله مهمترین،ضروری ترین و پرکاربردترین کتابخانه های NuGet که هر توسعه‌ دهنده‌ ASP.NET Core باید برای توسعه بهتر و کاهش زمان مورد نیاز برای برنامه ‌های خود از آن استفاده کنند را مورد بررسی قرار داده ایم.

1٬113 1 1401/12/29

الگوی طراحی Factory در سی شارپ

الگوهای طراحی یکی از مهمترین جنبه های طراحی و معماری نرم افزار است. Factory Method یک الگوی طراحی ایجادی است که یک رابط برای ایجاد اشیاء در یک سوپر کلاس فراهم می‌کند. ما در این مقاله الگوی Factory Method Design در سی شارپ را بررسی می کنیم.

1٬139 1 1401/10/28

مقایسه List و Array در سی شارپ

آرایه و لیست در سی شارپ هر دو به عنوان مجموعه ای از مقادیر عمل می کنند، اما در نحوه ذخیره محتوای خود در حافظه و نحوه دسترسی به آنها متفاوت هستند. در این مقاله Benchmark و کارایی List<T> با سایز داینامیک، List<T> با سایز ثابت و Array ها را بررسی می کنیم.

1٬657 2 1401/09/01

Garbage Collection در دات نت

به طور کلی، Garbage Collection (GC) یا جمع آوری زباله در .Net چیزی نیست جز به دست آوردن مجدد حافظه اختصاص داده شده به اشیایی که در حال حاضر در هیچ بخشی از برنامه ما استفاده نمی شوند. ما در این مقاله Garbage Collection را در سی شارپ بررسی خواهیم کرد.

2٬300 3 1401/03/30

.NET Core چیست؟

.Net (با تلفظ «دات نت») یک چارچوب نرم افزاری کامپیوتری مدیریت شده رایگان و منبع باز برای سیستم عامل های ویندوز، لینوکس و macOS است. این پروژه در درجه اول توسط کارمندان مایکروسافت از طریق دات نت توسعه یافته و تحت مجوز MIT منتشر شده است.

2٬083 2 1401/03/16

Redirect درخواست (ریدایرکت) در asp.net core

در برنامه های ASP.NET Core برای تغییر مسیر(ریدایرکت) و Redirect به یک URL خاص روش های مختلفی وجود دارد. در این مقاله با این تکنیک ها و کدهای مورد نیاز برای تغییر مسیر یک درخواست در ASP.NET Core آشنا می شویم.

2٬087 5 1401/02/12
نظرات

برای ثبت نظر باید در سایت ثبت نام یا ورود نمایید