Data Structures and Algorithm Analysis in C++ (inbunden)
Format
Inbunden (Hardback)
Språk
Engelska
Antal sidor
664
Utgivningsdatum
2013-08-20
Upplaga
4
Förlag
Pearson
Medarbetare
Weiss, Mark
Illustrationer
Illustrations
Dimensioner
234 x 193 x 28 mm
Vikt
1044 g
Antal komponenter
1
Komponenter
RACK TAGS
ISBN
9780132847377

Data Structures and Algorithm Analysis in C++

Data Struc Algor Analy C++ _4

Inbunden,  Engelska, 2013-08-20

Slutsåld

Data Structures and Algorithm Analysis in C++ is an advanced algorithms book that bridges the gap between traditional CS2 and Algorithms Analysis courses.

As the speed and power of computers increases, so does the need for effective programming and algorithm analysis. By approaching these skills in tandem, Mark Allen Weiss teaches readers to develop well-constructed, maximally efficient programs using the C++ programming language.

This book explains topics from binary heaps to sorting to NP-completeness, and dedicates a full chapter to amortized analysis and advanced data structures and their implementation. Figures and examples illustrating successive stages of algorithms contribute to Weiss careful, rigorous and in-depth analysis of each type of algorithm.
Visa hela texten

Kundrecensioner

Har du läst boken? Sätt ditt betyg »

Övrig information

Mark Allen Weiss is Professor and Associate Director for the School of Computing and Information Sciences at Florida International University. He is also currently serving as both Director of Undergraduate Studies and Director of Graduate Studies. He received his Bachelor's Degree in Electrical Engineering from the Cooper Union in 1983, and his Ph.D. in Computer Science from Princeton University in 1987, working under Bob Sedgewick. He has been at FIU since 1987 and was promoted to Professor in 1996. His interests include data structures, algorithms, and education. He is most well-known for his highly-acclaimed Data Structures textbooks, which have been used for a generation by roughly a million students. Professor Weiss is the author of numerous publications in top-rated journals and was recipient of the University's Excellence in Research Award in 1994. In 1996 at FIU he was the first in the world to teach Data Structures using the Java programming language, which is now the de facto standard. From 1997-2004 he served as a member of the Advanced Placement Computer Science Development Committee, chairing the committee from 2000-2004. The committee designed the curriculum and wrote the AP exams that were taken by 20,000 high school students annually. In addition to his Research Award in 1994, Professor Weiss is also the recipient of the University's Excellence in Teaching Award in 1999 and the School of Computing and Information Science Excellence in Teaching Award (2005) and Excellence in Service Award (2007).

Innehållsförteckning

Chapter 1 Programming: A General Overview 1

1.1 Whats This Book About? 1

1.2 Mathematics Review 2

1.2.1 Exponents 3

1.2.2 Logarithms 3

1.2.3 Series 4

1.2.4 Modular Arithmetic 5

1.2.5 The P Word 6

1.3 A Brief Introduction to Recursion 8

1.4 C++ Classes 12

1.4.1 Basic class Syntax 12

1.4.2 Extra Constructor Syntax and Accessors 13

1.4.3 Separation of Interface and Implementation 16

1.4.4 vector and string 19

1.5 C++ Details 21

1.5.1 Pointers 21

1.5.2 Lvalues, Rvalues, and References 23

1.5.3 Parameter Passing 25

1.5.4 Return Passing 27

1.5.5 std::swap and std::move 29

1.5.6 The Big-Five: Destructor, Copy Constructor, Move Constructor, Copy Assignment operator=, Move Assignment operator= 30

1.5.7 C-style Arrays and Strings 35

1.6 Templates 36

1.6.1 Function Templates 37

1.6.2 Class Templates 38

1.6.3 Object, Comparable, and an Example 39

1.6.4 Function Objects 41

1.6.5 Separate Compilation of Class Templates 44

1.7 Using Matrices 44

1.7.1 The Data Members, Constructor, and Basic Accessors 44

1.7.2 operator[] 45

1.7.3 Big-Five 46

Summary 46

Exercises 46

References 48

 

Chapter 2 Algorithm Analysis 51

2.1 Mathematical Background 51

2.2 Model 54

2.3 What to Analyze 54

2.4 Running-Time Calculations 57

2.4.1 A Simple Example 58

2.4.2 General Rules 58

2.4.3 Solutions for the Maximum Subsequence Sum Problem 60

2.4.4 Logarithms in the Running Time 66

2.4.5 Limitations of Worst Case Analysis 70

Summary 70

Exercises 71

References 76

 

Chapter 3 Lists, Stacks, and Queues 77

3.1 Abstract Data Types (ADTs) 77

3.2 The List ADT 78

3.2.1 Simple Array Implementation of Lists 78

3.2.2 Simple Linked Lists 79

3.3 vector and list in the STL 80

3.3.1 Iterators 82

3.3.2 Example: Using erase on a List 83

3.3.3 const_iterators 84

3.4 Implementation of vector 86

3.5 Implementation of list 91

3.6 The Stack ADT 103

3.6.1 Stack Model 103

3.6.2 Implementation of Stacks 104

3.6.3 Applications 104

3.7 The Queue ADT 112

3.7.1 Queue Model 113

3.7.2 Array Implementation of Queues 113

3.7.3 Applications of Queues 115

Summary 116

Exercises 116

 

Chapter 4 Trees 121

4.1 Preliminaries 121

4.1.1 Implementation of Trees 122

4.1.2 Tree Traversals with an Application 123

4.2 Binary Trees 126

4.2.1 Implementation 128

4.2.2 An Example: Expression Trees 128

4.3 The Search Tree ADTBinary Search Trees 132

4.3.1 contains 134

4.3.2 findMin and findMax 135...