圖書信息
出版社: 高等教育出版社; 第1版 (2001年5月1日)
外文書名: data structures and Program Design in C++
平裝: 717頁
正文語種: 英語
開本: 16
ISBN: 9787040100396
條形碼: 9787040100396
尺寸: 23.1 x 18.3 x 1.5 cm
重量: 980 g
作者簡介
編者:(美國)克魯斯 (Robert L.Kruse) Alexander J.Ryba
內容簡介
《數據結構與程式設計:C++語言描述(影印版)》內容簡介:Data Structures and Program Design in C++Objccl-oricntcd programming and powerful features of C++ enable this carefully crafted text to build data struc-tures from basic ideas into complete,fully developed programs and interesting applications. In the process, the textexplores problem solving and programming principles, data abstraction, recursion, and the comparative analysis ofalgorithms as fundamentals tools of software design.Employing substantial case studies, reusable software devele pment, and programming projects to increaseundcrstanding, successful authors Robert L. Kruse and Alexander .J. Ryba include topics such as:
C++ tcmplates are introduced early; code for data structures is developed as templated classes in fully reus-able form,the Standard Template Library(STL) is mentioned as appropriate.
Rccursion is treated early and applied throughout the text.
Data abstraction and abstract data types(ADTs) are emphasized, with conceptual development separatedfrom implementation issues.Advanced strnctures and algorithms are developed into complete programs, including splay trees. B-trees,red-black trees and graph algorithms such as minima spanning trees.I)ata Structures and Program Design in C++ will prove useful to both computer science students and professionals,The authors supply all code in this book on the Web. and. as well. they provide an excellent instructor supportpackage that includes an Instructor's Resource Manual with transparency masters, solutions, and source code to allof the programming examples and projects in the text.
目錄
Preface
synopsis
Course Structure
Supplementary Materials
Book Production
Acknowledgments
1.Programming Principles
1.1 Introduction
1.2 The Game of Life
1.2.1 Rules for the Game of Life
1.2.2 Examples
1.2.3 The Solution: Classes, Objects,and Methods
1.2.4 Life: The Main Program
1.3 Programming Style
1.3.1 Names
1.3.2 Documentation and Format
1.3.3 Refinement and Modularity
1.4 Coding, Testing,and Further Refinement
1.4.1 Stubs
1.4.2 Definition of the Class Life
1.4.3 Counting Neighbors
1.4.4 Updating the Grid
1.4.5 Input and Output
1.4.6 Drivers
1.4.7 Program Tracing
1.4.8 Principles of Program Testing
1.5 Program Maintenance
1.5.1 Program Evaluation
1.5.2 Review of the Life Program
1.5.3 Program Revision and Redevelopment
1.6 Conclusions and Preview
1.6.1 Software Engineering
1.6.2 Problem Analysis
1.6.3 Requirements Specification
1.6.4 Coding
Pointers and Pitfalls
Review Questions
References for Further Study
C++
Programming Principles
The Game of Life
Software Engineering
2.Introduction to Stacks
2.1 Stack Specifications
2.1.1 Lists and Arrays
2.1.2 Stacks
2.1.3 First Example: Reversing a List
2.1.4 Information Hiding
2.1.5 The Standard Template Library
2.2 Implementation of Stacks
2.2.1 Specification of Methods for Stacks
2.2.2 The Class Specification
2.2.3 Pushing, Popping,and Other Methods
2.2.4 Encapsulation
2.3 Application: A Desk Calculator
2.4 Application: Bracket Matching
2.5 Abstract Data Types and Their Implementations
2.5.1 Introduction
2.5.2 General Definitions
2.5.3 Refinement of Data Specification
Pointers and Pitfalls
Review Questions
References for Further Study
3.Queues
3.1 Definitions
3.1.1 Queue Operations
3.1.2 Extended Queue Operations
3.2 Implementations of Queues
3.3 Circular Implementation of Queues in C++
3.4 Demonstration and Testing
3.5 Application of Queues: Simulation
3.5.1 Introduction
3.5.2 Simulation of an Airport
3.5.3 Random Numbers
3.5.4 The Runway Class Specification
3.5.5 The Plane Class Specification
3.5.6 Functions and Methods of the Simulation
3.5.7 Sample Results
Pointers and Pitfalls
Review Questions
References for Further Study
4.Linked Stacks and Queues
4.1 Pointers and Linked Structures
4.1.1 Introduction and Survey
4.1.2 Pointers and Dynamic Memory in C++
4.1.3 The Basics of Linked Structures
4.2 Linked Stacks
4.3 Linked Stacks with Safeguards
4.3.1 The Destructor
4.3.2 overloading the Assignment Operator
4.3.3 The Copy Constructor
4.3.4 The Modified Linked-Stack Specification
4.4 Linked Queues
4.4.1 Basic Declarations
4.4.2 Extended Linked Queues
4.5 Application: Polynomial Arithmetic
4.5.1 Purpose of the Project
4.5.2 The Main Program
4.5.3 The Polynomial Data Structure
4.5.4 Reading and Writing Polynomials
4.5.5 Addition of Polynomials
4.5.6 Completing the Project
4.6 Abstract Data Types and Their Implementations
Pointers and Pitfalls
Review Questions
5.Recursion
5.1 Introduction to Recursion
5.1.1 Stack Frames for subprograms
5.1.2 Tree of Subprogram Calls
5.1.3 Factorials:
A Recursive Definition
5.1.4 Divide and Conquer:The Towers of Hanoi
5.2 Principles of Recursion
5.2.1 Designing Recursive Algorithms
5.2.2 How Recursion Works
5.2.3 Tail Recursion
5.2.4 When Not to Use Recursion
5.2.5 Guidelines and Conclusions
……
6 Lists and Srings
7 Searching
8 Sorting
9 Tables and Information rRtrieval
10 Binary Trees
11 Multiway Trees
12 Graphs
13 Case Study:The Polish Notation
A Mathematical Methods
B Random Numbers
C Packages and Utility Functions
D Programming Precepts,Pointers,and Pitfalls
Index