Java Appointment Book Manager with Binary Search Tree

Recently wrapped up one of my bigger projects this semester: an Appointment Book Manager in Java. This one pulled together a lot of what I’d been learning in my DSA course all at once: ADTs, iterators, binary search trees, recursion, node removal, and delegation. The timing made it especially meaningful—I was covering recursion and BSTs in both my DSA course (University of Wisconsin-Milwaukee) and CodePath TIP 102, while also attending DSA labs and preparing for technical mock interviews. Writing the code and then walking through my approach out loud forced me to articulate my thinking clearly under pressure and really lock in the concepts. A huge thank you to CodePath and to my DSA professor John Boyland for their continual support and guidance throughout this journey. The combination of both has pushed me further than I expected this semester. What I built: • Implemented a NewApptBook ADT backed by a binary search tree, designing recursive add, remove, and traversal methods from scratch for an efficient sorted collection with O(log n) search performance.   • Built a BST iterator with a stack for in-order traversal, a version counter, and a reference to the last returned node, with hasNext(), next(), and remove() implemented with version tracking and a custom invariant checker. The iterator keeps track of position as the tree structure shifts so traversal stays consistent and controlled.   • Added version tracking and invariants so any structural modification mid-iteration throws a ConcurrentModificationException instead of silently producing wrong outputs—fail fast, catch it early, fix it quickly. That mindset of building with both the developer and the end user in mind is something I want to carry into everything I build.   • Engineered a recursive node removal algorithm that replaces removed nodes with in-order successors, preserving BST order across edge cases including nodes with 0, 1, or 2 children. A lot happening at once that couple of weeks, but it genuinely paid off. I learned a lot and grew as a developer. #Java #DataStructures #BinarySearchTree #Algorithms #CS #CodePath

To view or add a comment, sign in

Explore content categories