Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Artifact ID: | 97b2bac950a5c04b34f6d7a8550ac0b0fd51cb5a |
---|---|
Page Name: | Singly-Linked List |
Date: | 2017-03-22 21:56:12 |
Original User: | Entomy |
Parent: | 2d772a623b68f9cbd17c7fd6a5d78998ee751660 (diff) |
Next | cd44604a3e710382422ed732b681f66c9036ba25 |
Purpose
Sometimes the overhead of larger containers isn't justifiable, and so the smaller node of the Singly-Linked List is advantageous.
This is also fundamentally how the Stack and Queue work, although this List has more overhead than either of those, but provides more features.
Notable Features
Non-Deallocative Traversal
Traversal between nodes of any list type does not remove the previous node, so they behave more like arrays.
Insertion
Unlike the Stack or Queue, or the Array, nodes can be inserted inside the list without requiring a new list.
Queries
Some queries are possible upon this generalized list, and are made available here. Whether a list contains a value, all instances of a certain value, former N values, hinder N values, and so on. All of these queries either return a boolean or another list which can be queried.
Considerations
Use of an iterator is slower than traversal through Node.Ahind
, due to the implementation. This is because the list operations largely operate on nodes themselves, not on a cursor, so the cursor heavy iterator has additional overhead. Being simpler, iterators are good for prototyping or when performance doesn't matter, but manual traversal is advised.