ناگهان چه زود دیر می شود
گناباد

در ليست يک طرفه فقط می توانيم در يک جهت پيمايش کنيم. گاهی پيمايش روی ليست از هردوطرف مورد نياز است. بنابراين در هر گره به دو فيلد اشاره گر نياز است؛ برای اشاره به گره بعدی و گره قبلی که اغلب اشاره گرهای Left و Right ناميده می شوند. ليستی که شامل اين نوع گره باشد را ليست پيوندی دوطرفه (doubly-linked list) می نامند. شکل زير ساختار گره را نشان می دهد.

Doubly-Linked list node

اگر ليست به صورت افقی ترسيم شود اشاره گرهای Right برای پيمايش ليست از چپ به راست (از ابتدا به انتها) استفاده می شوند. توسط اشاره گرهای Left می توان در صورت نياز به گره قبلی برگشت. بنابراين امکان پيمايش ليست در هردو جهت وجود دارد.

typedef int ItemType;
typedef struct Node
{
ItemType Info;
Node * Right, * Left;
};
typedef Node * NodePtr;

Doubly-Linked listهمين طور که در شکل ديده می شود اشاره گر Left اولين گره و اشاره گر Right آخرين گره ليست NULL هستند که نشان دهنده ابتدای هر جهت می باشند.
 
 
برگرفته از سایت : http://www.hpkclasses.ir/
 


تاريخ : چهارشنبه چهارم آذر ۱۳۸۸ | 23:12 | نویسنده : علي مهري خانیکی |