I want to write java code for xor-linked list . Can somebody suggest me how to perform xor operation between references?
To say long things short, you can't.
With just a little more words, if Java allows you to pass variables by references, arithmetic on these reference is not permitted by the Java language. Hence, your xor operations won't be possible.
Moreover, when reading the Wikipedia entry, I understand it's a memory optimization of classical linked list implementation relying, for determining next/previous node, solely upon that pointer arithmetic. I consider it a kind of very advanced memory optimization, that doesn't seem as useful in Java as it can be in unmanaged memory languages like, say, C(++).
You can... but I must say first: DO NOT DO IT.
There's a class sun.misc.Unsafe
allowing doing a lot of unsafe things. Using it you can get the address of objects and make you xor-linked list. But again: DO NOT DO IT. There are at least the following problems:
And finally: DO NOT DO IT.
If you just want to play with the list, implement it inside of an array (use indexes instead of pointers). This is safe and will work. However, linked lists are quite inefficient structures, close to unusable most of the time.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With