Linked list (Danh sách kết nối)
Trong khoa học máy tính, danh sách kết nối là cấu trúc dữ liệu bao gồm một nhóm các nodes đại diện cho một chuỗi. Dưới hình thức đơn giản, một [node] bao gồm một dữ liệu và một nguồn tham khảo( [link]) đến các node tiếp theo trong một chuỗi, nhiều biến phức tạp thêm vào link bổ sung. Cấu trúc này cho phép việc chèn và loại bỏ hiệu quả bất cứ yếu tố nào từ các vị trí bất kỳ trong chuỗi.
By English
In computer science, a linked list is a data structure consisting of a group of nodes which together represent a sequence. Under the simplest form, each node is composed of a data and a reference (in other words, a link) to the next node in the sequence; more complex variants add additional links. This structure allows for efficient insertion or removal of elements fr om any position in the sequence.
A linked list whose nodes contain two fields: an integer value and a link to the next node. The last node is linked to a terminator used to signify the end of the list.
Linked lists are among the simplest and most common data structures. They can be used to implement several other common abstract data types, including lists (the abstract data type), stacks, queues, associative arrays, and S-expressions, though it is not uncommon to implement the other data structures directly without using a list as the basis of implementation.
The principal benefit of a linked list over a conventional array is that the list elements can easily be inserted or removed without reallocation or reorganization of the entire structure because the data items need not be stored contiguously in memory or on disk. Linked lists allow insertion and removal of nodes at any point in the list, and can do so with a constant number of operations if the link previous to the link being added or removed is maintained during list traversal.
On the other hand, simple linked lists by themselves do not allow random access to the data, or any form of efficient indexing. Thus, many basic operations — such as obtaining the last node of the list (assuming that the last node is not maintained as separate node reference in the list structure), or finding a node that contains a given datum, or locating the place wh a new node should be inserted — may require scanning most or all of the list elements