سایت در حال بارگذاری است ...

لیست پیوندی دو طرفه در سی شارپ #C

موضوع پروژه: لیست پیوندی دو طرفه در سی شارپ #C |نسخه نرم افزار:visual studio|

 

لیست پیوندی دو طرفه

لیست پیوندی دوطرفه یک ساختار داده ی به هم پیوسته است .هرگره از دو بخش تشکیل شده که یک مرجع به گره قبل و گره بعد در سری گره‌ها است که به آن پیوند می‌گویند. قسمت‌های next (بعدی) و previous (قبلی) .می‌توان به این شکل درک کرد که دو لیست پیوندی یک طرفه با اطلاعات و مقادیر یکسان داریم که در جهت عکس یکدیگر هستند.

 

برای پیاده سازی گره داریم:

Class Node
{
data; // داده های مربوط به هر گره
Node next // به نود بعدی اشاره می کند
Node previous به نود قبلی اشاره می کند //
}

لیست پیوندی دارای دو اشاره گر خاص می باشد . یکی با نام FirstNode که به ابتدای لیست و دیگری LastNode که به انتهای لیست اشاره می کند. پیاده سازی این لیست به صورت زیر می باشد :

class DoublyLinkedList {
DoublyLinkedNode firstNode
DoublyLinkedNode lastNode
}

اعمال بر روی لیست های دوطرفه :
پیمایش ( به صورت روبه جلو )

Node *P=FirstNode;
While(p->next!=NULL){
(do something with p->data)
p=p->next;
}
پیمایش ( به صورت روبه عقب )

Node *p=LastNode;
While(p->Previous!=NULL)}
(do something with p->data)
P=p->previos;
}

افزودن یک نود (پس از نودی خاص)

Node *NewNode = new Node; ایجاد نود جدید //
If(node->previous!=NULL){
NewNode->next=Node;
NewNode->Previous=Node->Previous;
Node->Previous->Next=NewNode;
Node->Prevous=NewNode;
}
Else{ اضافه کردن به ابتدای لیست //
NewNode->next=Node;
NewNode->Previous=NULL;
Node->previous=NewNode;
FirstNode=NewNode;
}

حذف یک نود (بعد از نودی خاص)

Node->next=Node->next->next;
Node->next ->previous=Node;
Destroy nextNode

Slp7.png

 

 

 

مطلب مفیدی برای شما بود ؟ پس به اشتراک بگذارید برای دوستانتان
درباره این مطلب نظر دهید !

محصولات مرتبط ...

محصولات زیرا حتما ببینید ...