represents a linked list where the elements are general expressions.

# Details

• A linked list is useful for efficiently prepending and appending elements:
• For a data structure of type "LinkedList", the following operations can be used:
•  ds["Append",x] append x to ds time: O(1) ds["Copy"] return a copy of ds time: O(n) ds["DropAll"] drop all the elements from ds time: O(n) ds["DropFirst"] drop the first element of ds time: O(1) ds["Elements"] return a list of the elements of ds time: O(n) ds["EmptyQ"] True, if ds has no elements time: O(1) ds["Fold",fun,init] apply fun to the elements of ds, starting with init, accumulating a result time: O(n) ds["JoinBack",elems] join elems to the back of ds time: O(nelems) ds["JoinFront",elems] join elems to the front of ds time: O(nelems) ds["Length"] number of elements stored in ds time: O(1) ds["Part",i] give the i part of ds time: O(n) ds["Prepend",x] prepend x to ds time: O(1) ds["SetPart",i,elem] update the i part of ds time: O(n) ds["SwapPart",i,j] swap the i and j parts of ds time: O(n) ds["Visualization"] return a visualization of ds time: O(n)
• The following functions are also supported:
•  dsi===dsj True, if dsi equals dsj ds["Part",i]=val set i element of ds to val FullForm[ds] full form of ds Information[ds] information about ds InputForm[ds] input form of ds Normal[ds] convert ds to a normal expression

# Examples

open allclose all

## Basic Examples(2)

A new "LinkedList" can be created with CreateDataStructure:

Elements can be appended:

Elements can be prepended:

Return the length:

Extract the first element:

Change an element:

The element has updated:

Return an expression version of ds:

It is fast to append and prepend:

A visualization of the data structure can be generated:

Sum all the elements:

## Scope(1)

### Information(1)

A new "LinkedList" can be created with CreateDataStructure:

Information about the data structure ds: