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); } }
Preview:
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