Editing Linked list
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 2: | Line 2: | ||
==Terminology== | ==Terminology== | ||
− | Each object stored in a linked list is known as an '''element''' or '''value'''. The address of the next value is known as a '''link''', as it "links" the element to the next one. A value and the corresponding link, stored together and taken collectively, are known as a '''node''' of the list. The '''size''' or '''length''' of a linked list is the number of elements or nodes it contains. A list may be empty if it contains no elements. If it is not empty, its first node is known as the '''head''', and the rest of its elements, which themselves form a linked list, are known as the '''tail'''. There are traditionally two functions on a linked list: one that returns the head, known as '''car''', and one that returns the tail, known as '''cdr | + | Each object stored in a linked list is known as an '''element''' or '''value'''. The address of the next value is known as a '''link''', as it "links" the element to the next one. A value and the corresponding link, stored together and taken collectively, are known as a '''node''' of the list. The '''size''' or '''length''' of a linked list is the number of elements or nodes it contains. A list may be empty if it contains no elements. If it is not empty, its first node is known as the '''head''', and the rest of its elements, which themselves form a linked list, are known as the '''tail'''. There are traditionally two functions on a linked list: one that returns the head, known as '''car''', and one that returns the tail, known as '''cdr'''. |
==Implementation== | ==Implementation== | ||
Line 20: | Line 20: | ||
===Doubly linked lists=== | ===Doubly linked lists=== | ||
In some lists, each node also contains a link that points to the ''previous'' node (except possibly the first node, which may or may not point back to the head node). Doubly linked lists may be efficiently traversed both forward and backward (if the head node contains a pointer to the last element), and allow ''erase'' to be implemented efficiently without foreknowledge of the address of the node preceding the one we wish to erase. | In some lists, each node also contains a link that points to the ''previous'' node (except possibly the first node, which may or may not point back to the head node). Doubly linked lists may be efficiently traversed both forward and backward (if the head node contains a pointer to the last element), and allow ''erase'' to be implemented efficiently without foreknowledge of the address of the node preceding the one we wish to erase. | ||
− | |||
− |