Linked list: Difference between revisions

From Rosetta Code
Content added Content deleted
m (Added wikipedia-style bolding and data structures link)
m (Complexity of list operations mentioned)
Line 5: Line 5:
==Singly-Linked List==
==Singly-Linked List==


A singly-linked list allows traversal in one direction, forward. To this end, each data element contains a reference to the next data element in the sequence.
A singly-linked list allows traversal in one direction, forward. To this end, each data element contains a reference to the next data element in the sequence. Single-linked list has [[O]](1) insertion time and [[O]](n) removal time.


===See also===
===See also===
Line 16: Line 16:
==Doubly-Linked List==
==Doubly-Linked List==


A doubly-linked list allows traversal in two directions, forward and back. To this end, each data element contains references to both the previous and next elements.
A doubly-linked list allows traversal in two directions, forward and back. To this end, each data element contains references to both the previous and next elements. Doubly-linked list has [[O]](1) removal and insertion times. Further, these operations do not require the list head.


===See also===
===See also===

Revision as of 07:55, 18 July 2008

A linked list is a data structure which allows a great deal of flexibility in memory allocation and data sorting. Linked lists depend on references for their organization. Information is stored in "nodes" which contain data (integers, strings, etc., sometimes called an "element") and one or more "links" to to other nodes. The number of links determines what type of linked list it is (one link: "singly-linked list", two links: "doubly-linked list", three links: "triply-linked list", etc.), though one or two links are most common. Linked lists have a "head" (the first node in the list) and sometimes a "tail" (the last node).

Here are examples of the two common types of linked lists:

Singly-Linked List

A singly-linked list allows traversal in one direction, forward. To this end, each data element contains a reference to the next data element in the sequence. Single-linked list has O(1) insertion time and O(n) removal time.

See also

Doubly-Linked List

A doubly-linked list allows traversal in two directions, forward and back. To this end, each data element contains references to both the previous and next elements. Doubly-linked list has O(1) removal and insertion times. Further, these operations do not require the list head.

See also