Tag Data Structures And Algorithms: Deep Dive Using Java