Doubly Linked Lists

A doubly linked list is a linked linear data structure,each node of which has one or more data fields but only two link fields known as left link (LLINK) and right link (RLINK).The LLINK field of a given node points to the node on its left and RLINK field of a given node points to the node on its right.

Advantages-

1.The availability of two links LLINK and RLINK permit forward and backward movement during the processing of the list.
2.The deletion of a node X from the list requires only the value of X.
3.Efficiency of operations like insertion,deletion,etc increases.

Disadvantage-

1.Each node needs two links which can be considered expensive storage-wise when compared to singly linked lists.

Operations-

Insertion-

To insert node X to the right of node Y in a headed circular doubly linked list P-

[cpp]

INSERT (X,Y)

LLINK(X)=Y;
RLINK(X)=RLINK(Y);
LLINK(RLINK(Y))=X;
RLINK(Y)=X;

END
[/cpp]

insertion

Deletion-

To delete node X from a headed circular doubly linked list P-

[cpp]

DELETE (P,X)

RLINK(LLINK(X))=RLINK(X);
LLINK(RLINK(X))=LLINK(X);

END

[/cpp]

deletion

Leave a Comment

Your email address will not be published. Required fields are marked *