Friday, October 24, 2025
HomeLanguagesJavaCan We Implement Xor Linked List in Java?

Can We Implement Xor Linked List in Java?

As we all can depict from the below figure that doubly LinkedList requires two link fields in order to store the address of the next node and the address of the right node Right? So XOR Linked list Typically acts as Doubly LinkedList. Each node of XOR Linked List requires only a single pointer field which doesn’t actually store the actual memory address but stores the Bitwise XOR of the address of its next and previous nodes. This leads to memory saving. 

Read this first – XOR Linked List – A Memory Efficient Doubly Linked List. Now wondering about how the node of XOR LinkedList looks like. Below is the image of how it looks like:

XOR of the address of its next and previous nodes

Now we are done with the representation of doubly Linked List. You would be wondering whether it is  possible to implement in java ?. 

The answer to this is very simple and conclusive that one can not implement XOR linked list in a programming language such as java because of the presence of pointers in C++ and absence here in java language. In Java XOR doubly linked list is not possible because what happens is you don’t have access to the actual memory address of any object and the Garbage collector will remove such nodes if there is no variable referring to them.  This is also the same in the case of C#.

Your doubly linked list class which uses this node class will keep track of the last node when iterating through the list. Similarly, you can also traverse backwards by doing an XOR of the next node’s address and the current node’s XOR Pointer. While we store only one previous node at a time instead of the previous node for every node, we save a considerable amount of memory. As we all know the memory is cheap nowadays so the concept of XOR doubly LinkedList is just theoretical, and it has no practical application.

If we need to take the XOR of two addresses we need to cast the memory address into integers which is not possible in java. But in C++ we can typecast any pointer that is (Node*), (int *) to any data type, depending on your machine that is (4 for 32 bit) and (8 for 64 bit). long is used to handle pointers in C++ also uintptr_t is available. Since we cannot Implement this in java, but wait can we be not able to do this in any language? Yes we can in C/C++.

Conclusion: The answer to this query is cold frozen NO as we can implement XOR Linked List in C/C++ because of its amazing feature i.e pointers with which we can also implement in language such as C#. 

Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS