stacks focuses on the concept of last-infirst-out (lifodata structure called stacks the also shows the practical implementation of these data structures using arrays as well as linked lists it also shows how stacks can be used for the evaluation of arithmetic expressions queues deals with the concept of first-infirst-out (fifodata structure called queues the also provides the real-world applications of queues trees focuses on binary treestheir traversal schemes and representation in memory the also discusses expression treestournament treesand huffman treesall of which are variants of simple binary trees ,efficient binary trees broadens the discussion on trees taken up in by going one step ahead and discussing efficient binary trees the discusses binary search treesthreaded binary treesavl treesred-black treesand splay trees multi-way search trees explores trees which can have more than one key value in single nodesuch as -way search treesb treesbtreestriesand - trees heaps discusses three types of heaps--binary heapsbinomial heapsand fibonacci heaps the not only explains the operations on these data structures but also makes comparisonthereby highlighting the key features of each structure graphs contains detailed explanation of non-linear data structure called graphs it discusses the memory representationtraversal schemesand applications of graphs in the real world searching and sorting covers two of the most common operations in computer sciencei searching and sorting list of values it gives the techniquecomplexityand program for different searching and sorting techniques hashing and collision deals with different methods of hashing and techniques to resolve collisions the last of the bookfiles and their organizationdiscusses the concept related to file organization it explains the different ways in which files can be organized on the hard disk and the indexing techniques that can be used for fast retrieval of data the book also provides set of seven appendices appendix introduces the concept of dynamic memory allocation in programs appendix provides brief discussion of garbage collection technique which is used for automatic memory management appendix explains backtracking which is recursive algorithm that uses stacks appendix discusses johnson' algorithm which is used in applications where an optimal order of execution of different activities has to be determined appendix includes two programs which show how to read and write binary files appendix includes program which shows how to sort list of numbers using address calculation sort appendix provides wise answers to all the objective questions reema thareja www allitebooks com