This book is about the fundomentnls of data structures nncl algorithms - the basic clements from which large and complex software projects arc built. To develop a good understanding or a datu structure requires three things: first, you must learn how the information is arrnnged in the memory of the computer; second, you must become familiar with the algorithms for manipulating the information contained in the du ta structure; and third, you must understand the performance characteristics or the data structure so that when ca lled upon to select usuitable data structure for a particu lar application, you arc able to make an appropriate decision.The algorithms and d::na structures in this book arc presented in the Python progrnmming language. A unique feature or this book, when compared to the available book:,; on the subject, is thnl it olTern a balance of theory, practical concepts, problem solving, and interview questions.