آموزش دونه:مرجع آموزش

ساختمان داده لیست پیوندی در جاوا (Java LinkedList ) آموزش برنامه نویسی جاوا Java

Java LinkedList

لیست پیوندی

Java LinkedList

یکی از مشکلاتی که آرایه دارد ساختار و طول ثابت آن است بنابراین نمیتوان براحتی نمیتوان ساختار آن را طوری تغییر داد که با داده های(اطلاعات) ما همخوانی داشته باشد. همچنین آرایه هزینه insert و delete آن بالا است.

لیست پیوندی یک داده ساختار خطی است که بر خلاف آرایه طول آن میتواند تغییر کند و فضای اضافی را اشغال نکند. در لیست پیوندی هر عنصر یک Object (شی) جداگانه است. هر عنصر (از این به بعد عنصر را نود می گوییم ) در لیست دو بخش دارد ۱٫داده (اطلاعات) ۲٫ ارجاع(refrence) به شی(Object) بعدی.

در لیست  نود آخر همیشه ارجاع آن null است(البته در single linkedlist). نود اول را در لیست پیوندی head میگویند و ارجاع آن نگه داشته میشود.همان طور که گفته شد لیست پیوندی تعداد ثابتی نود ندارد و کاملا پویا است و به راحتی با داده های ما طول لیست اضافه و کم میشود. یکی از ایرادهای لیست پیوندی نسبت به آرایه این است که اجازه دسترسی مستقیم به نود خاصی را نمی دهد.

انواع لیست

Java LinkedList

لیست ها به دسته های مختلفی تقسیم میشوند.در این آموزش به معرفی جند نمومه از لیست ها می پردازیم.انواع لیست ها شامل :

  1. Single linked list: هر نود شامل یک داده و یک ارجاع به نود بعدی هستند.
  2. Double linked List: هر نود علاوه بر ارجاع به نود بعدی، ارجاع به نود قبل هم دارند.
  3. Circular linked list: کاملا شبیه به single linked list هست فقط نود آخر ارجاعش به نود اول است.

پیاده سازی

Java LinkedList

این قسمت به پیاده سازی Single linked list پرداخته میشود.پیاده سازی لیست های پیوندی به صورت های مختفی است. ما یکی از آنها را بیان می کنیم. اول یک کلاس به نام Node نیاز داریم.در این کلاس یک data وجود دارد و یک next_node که به ترتیب به داده و نود بعدی اشاره می کنند.

مرحله بعد پیاده سازی خود لیست است. تا الان فقط نود را ساختیم.کلاس SingeLinkedList میسازیم که شامل:

  1. First: اولین عنصر لیست
  2. Size: سایز لیست ما
  3. Size: متدی که سایز لیست به ما میدهد
  4. Iterator: متدی که یک iterator برای لیست ما بر میگرداند.
  5. isEmpty: متدی که خالی بودن لیست را به میگوید
  6. Add: متدی که یک نود به خانه های لیست ما اضافه می کند.

کلاس ListIterator هم یک Iterator است برای SingleLinkedList

Java LinkedList

در آخر هم یک Main برای برنامه مینویسیم.

Java LinkedList

Java LinkedList

آموزش کامل زبان برنامه نویسی جاوا در برنامه اندرویدی ما:

دانلود نرم افزار اندرویدی آموزش  زبان برنامه نویسی جاوا 

مطالب مرتبط