Data structures and algorithms (World Scientific Pub. Co., 2003)