This week I learned about balanced trees and hashing. AVL trees maintain balance using a factor based on subtree heights and require rotations after insertions or deletions to keep operations logarithmic. Two three trees keep all leaves at the same depth and split nodes when necessary, reinforcing how multiway trees stay balanced. Heaps introduced complete binary trees, array representations, sift up and sift down, and how heapsort achieves efficient sorting. Hash tables showed how keys map to indices, how collisions occur, and how linear probing or chaining resolve them, with load factor guiding resizing decisions in practical implementations and systems.
