- Hands-On Data Structures and Algorithms with Rust
- Claus Matzinger
- 225字
- 2021-07-02 14:11:52
A better transaction log
So, the list of requirements got expanded:
- Move forward through the log
- Move backward through the log
- Moves don't consume the log
A nice fit for the doubly linked list, so the existing transaction log can be upgraded! With the pointers to both neighbors of a node, it can solve the problem. However, what about moving through the list without removing elements?
For that, another concept is required: iterators. Rust's iterators are leaning on the functional side of programming and provide a versatile interface for integrating with all kinds of other data structures and commands across the language. For example, for loops will pick up on the iterator and behave as expected.
The data model is going to look like the singly linked list, so most of the operations can be used as they are—they only need to be upgraded to work with the back-pointer as well.