Linked list (Linked list) is a common basic data structure, is a linear table, but does not store data in a linear order, but a pointer to the next node in each node (Pointer) to access a specific number of nodes need O (n) time, The corresponding time complexity of the sequential table is O (logn) and O⑴ respectively. Using the list structure can overcome the shortcoming that the array list needs to know the data size beforehand, the list structure can make full use of the computer memory space and realize the flexible memory dynamic management. However, the list loses the advantage of random array reading, and the spatial overhead of the linked list is larger due to the increase of the point-of-view pointer domain. In computer science, a linked list can be used to generate other types of data structures as a basic structure. A linked list is usually made up of a chain of nodes, each containing arbitrary instance data fields and one or two links to the location of the previous/or next node ("Links"). The most obvious benefit of a linked list is that the regular array arranges the associated items in a different way than the data items are in the order of memory or disk, and the data accesses tend to be converted in different permutations. A linked list is a self-directed data type because it contains a pointer (link) to another data of the same type. Lists allow you to insert and remove nodes from any location on the table, but do not allow random access. There are a number of different types of linked lists: one-way lists, two-way lists, and circular lists. Linked lists can be implemented in a variety of programming languages. The built-in data types of languages like Lisp and scheme include the access and operation of the linked list. Programming languages or object-oriented languages such as c,c++ and Java rely on variable tools to generate linked lists.
The characteristic of a chain storage representation of a linear table is the use of a set of arbitrary storage units to store data elements of a linear table (this set of storage units can be contiguous or discontinuous). Therefore, in order to represent the logical relationship between each data element and its direct successor data element, in addition to storing its own information, it is necessary to store a message indicating its direct successor (that is, the direct successor storage location). These two pieces of information form a "node" (as shown in the figure next to the overview), representing a data element in a linear table. The linear table of the chain storage, there is a drawback is to find a number, you have to start from scratch, very troublesome. Extended
Depending on the situation, you can also design other extensions of the list yourself. However, the data is not usually appended to the edge because the list of points and edges is basically one by one (except for the first or last node, but no special case is created). One exception is that if the list supports reversing the front and back pointers in a segment of the list, it may be more convenient to add the reverse tag to the edge.
For non-linear linked lists, see related other data structures, such as trees, graphs. There is also a data structure based on multiple linear lists: jumping tables, inserting, deleting, and finding basic operations can be as fast as O (NLOGN), and balanced binary trees.
The domain in which the data element information is stored is called the data domain, and the domain where the direct successor is stored is referred to as the Pointer field (set the domain name to next). The information stored in the pointer field is also called a pointer or chain.
By the distinction, ..., the N-nodes chain-linked list, called the linear table chain storage representation, because each node of such a list contains only one pointer field, it is also called a single-linked list or a linear list.
Definition of a linked list