Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
XOR linked list
(section)
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.
Anti-spam check. Do
not
fill this in!
== Drawbacks == * General-purpose debugging tools cannot follow the XOR chain, making debugging more difficult;<ref>{{cite web |url=http://www.iecc.com/gclist/GC-faq.html#GC,%20C,%20and%20C++ |title=GC [garbage collection] FAQ β draft |first=David |last=Gadbois |display-authors=etal|access-date=5 December 2018}}</ref> * The price for the decrease in memory usage is an increase in code complexity, making maintenance more expensive; * Most [[garbage collection (computer science)|garbage collection]] schemes do not work with data structures that do not contain literal [[pointer (computer programming)|pointer]]s; * Not all languages support [[type conversion]] between pointers and integers, XOR on pointers is not defined in some contexts; * While traversing the list, the address of the previously accessed node is needed to calculate the next node's address and the pointers will be unreadable if one isn't traversing the list—for example, if the pointer to a list item was contained in another data structure; * XOR linked lists do not provide some of the important advantages of doubly linked lists, such as the ability to delete a node from the list knowing only its address or the ability to insert a new node before or after an existing node when knowing only the address of the existing node. Computer systems have increasingly cheap and plentiful memory, therefore storage overhead is not generally an overriding issue outside specialized [[embedded system]]s. Where it is still desirable to reduce the overhead of a linked list, [[unrolled linked list|unrolling]] provides a more practical approach (as well as other advantages, such as increasing cache performance and speeding [[random access]]).
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)