000 03645cam a2200337 a 4500
008 081016s2005 njua 001 0 eng
010 _a2005021403
020 _a9780471467557
035 _a(Sirsi) u908
040 _aEG-CaNU
_cEG-CaNU
_dEG-CaNU
042 _ancode
082 0 0 _a005.117
_2 22
100 1 _aKoffman, Elliot B.
_94975
245 1 0 _aObjects, abstraction, data structures, and design :
_b using C++ /
_c Elliot B. Koffman, Paul A.T. Wolfgang.
260 _aHoboken, NJ :
_b John Wiley & Sons, Inc.,
_c c2006.
300 _axxvi, 806 p. :
_b ill. ;
_c 23 cm.
500 _aIncludes index.
505 0 _aChapter 1. Introduction to Software Design -- Chapter 2. Program Correctness and Efficiency -- Chapter 3. Inheritance and Class Hierarchies -- Chapter 4. Sequential Containers -- Chapter 5. Stacks -- Chapter 6. Queues and Deques -- Chapter 7. Recursion -- Chapter 8. Trees -- Chapter 9. Sets and Maps -- Chapter 11. Self-Balancing Search Trees -- Chapter 12. Graphs.
520 _aKoffman and Wolfgang introduce data structures in the context of C++ programming. They embed the design and implementation of data structures into the practice of sound software design principles that are introduced early and reinforced by 20 case studies. Data structures are introduced in the C++ STL format whenever possible. Each new data structure is introduced by describing its interface in the STL. Next, one or two simpler applications are discussed then the data structure is implemented following the interface previously introduced. Finally, additional advanced applications are covered in the case studies, and the cases use the STL. In the implementation of each data structure, the authors encourage students to perform a thorough analysis of the design approach and expected performance before actually undertaking detailed design and implementation. Students gain an understanding of why different data structures are needed, the applications they are suited for, and the advantages and disadvantages of their possible implementations. Case studies follow a five-step process (problem specification, analysis, design, implementation, and testing) that has been adapted to object-oriented programming. Students are encouraged to think critically about the five-step process and use it in their problem solutions. Several problems have extensive discussions of testing and include methods that automate the testing process. Some cases are revisited in later chapters and new solutions are provided that use different data structures. The text assumes a first course in programming and is designed for Data Structures or the second course in programming, especially those courses that include coverage of OO design and algorithms. A C++ primer is provided for students who have taken a course in another programming language or for those who need a review in C++. Finally, more advanced coverage of C++ is found in an appendix.
630 0 0 _aCIT.
_914
650 0 _aObject-oriented programming (Computer science)
_91365
650 0 _aData structures (Computer science)
_916419
650 0 _aApplication program interfaces (Computer software)
_9157
650 0 _aC++ (Computer program language)
_9263
700 1 _aWolfgang, Paul A. T.
_916420
920 _a0471467553
596 _a1
999 _c7984
_d7984