Preview:
import java.util.*;

public class BITMASKING {
public static void main(String[] args) {
int n = 5; // Number of elements
int visitedMask = 0; // Initially, no element is visited (all bits are 0)


visitedMask = visitNode(visitedMask, 2); // Mark element at index 2 as visited
System.out.println("Visited Mask after visiting node 2: " + Integer.toBinaryString(visitedMask));
visitedMask = unvisitNode(visitedMask, 2);
System.out.println(Integer.toBinaryString(visitedMask));
visitedMask = visitNode(visitedMask, 9);
System.out.println(Integer.toBinaryString(visitedMask));


System.out.println("Is node 2 visited? " + isVisited(visitedMask, 2));
System.out.println("Is node 3 visited? " + isVisited(visitedMask, 3));


visitedMask = visitNode(visitedMask, 4); // Mark element at index 4 as visited
System.out.println("Visited Mask after visiting node 4: " + Integer.toBinaryString(visitedMask));


visitedMask = unvisitNode(visitedMask, 2); // Unmark element at index 2
System.out.println("Visited Mask after unvisiting node 2: " + Integer.toBinaryString(visitedMask));
}


public static int visitNode(int mask, int index) {
return mask | (1 << index);
}


public static boolean isVisited(int mask, int index) {
return (mask & (1 << index)) != 0;
}


public static int unvisitNode(int mask, int index) {
return mask & ~(1 << index);
}
}
downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter