Article Content

A linked list is one of the simplest data structures of computer programming. It consists of a number of nodes, each containing one element and one (or more) links to other nodes. Linked lists permit insertion and removal of nodes at any point in the list in O(1) time. Linked lists do not allow random access.

The simplest kind of linked list is a singly linked list, which has one link per node. This link points to the next node in the list, or to a null value if it is the last node. This kind of list allows sequential access to elements only in one direction (from front to back).

A more sophisticated kind of linked list is a doubly linked list. Each node has two links, one to the previous node and one to the next. This allows sequential access to the list in both directions.

There are two significant variations to the types mentioned above. First is a circularly linked list, where the first and last nodes are linked together. This can be done for both singly and doubly linked lists. The other variation is the addition of a sentinel[?] node at the beginning of the list. This node represents before the first node and/or after the last node of the list. It also makes it possible to have an empty list.

Many programming languages, such as LISP have linked lists built in. In other languages it is simple to create the data structure using pointers or references to implement links between list nodes. For example, in C:

``` typedef struct Person
{
Person *prev; // <--- previous person in list
Person *next; // <--- next person in list
char name[10];
int age;
};
```

An example of code that uses this structure:

``` Person first; // first item in the linked list
Person *p = &first;
while(!feof(stdin)) // there's still input
{
p->next = (Person *)malloc(sizeof(Person));   // first link
p = p->next;
printf("Enter name and age:\n");              // Ask for input
scanf("%s %d", &(p->name), &(p->age));        // Use it
}
```

Some linked list materials are available from the Stanford Computer Science department:

All Wikipedia text is available under the terms of the GNU Free Documentation License

Search Encyclopedia
 Search over one million articles, find something about almost anything!

Featured Article
 Battle Creek, Michigan ... 8.7% from 18 to 24, 29.5% from 25 to 44, 21.0% from 45 to 64, and 13.5% who are 65 years of age or older. The median age is 35 years. For every 100 females there are ...