every good programmer should know how to code this data structure (its easy)