数据结构习题与解答:Java 语言描述(英文版)
作者 : (美)John R.Hubbard
出版日期 : 2002-08-01
ISBN : 7-111-10419-6
定价 : 38.00元
教辅资源下载
扩展信息
语种 : 英语
页数 : 384
开本 : 16开
原书名 : Shaum's Outlines Data Structures With Java
原出版社:
属性分类: 教材
包含CD :
绝版 : 已绝版
图书简介

This is a valuable book for two reasons. First, it explains how human cognitive abilities and limitations determine which UI designs will be easy vs. difficult for people to learn and use. It can therefore help to educate those software designers who lack training in cognitive psychology. Second, it challenges longstanding GUI design assumptions, pointing out many ways in which conventional GUIs are actually bad for users. It can therefore point the way for evolution of current-day GUIs into something better.
  What this book is NOT is a design-guide for creating GUIs that are Windows (or Mac, Motif, or Web) compliant. If that's what you want, you should look elsewhere.
  My one criticism is that, in my opinion, the book loses steam in its later chapters, becoming a collection (the author calls it a 'potpourri') of Raskin's pet peeves about computers, along with his remedies. For the second edition, these chapters could be tightened up or cut. Nonetheless, the Human Interface should be required reading for every software designer and UI researcher
  This book is for human-machine interface researchers, who will find that they will never again be able to view interfaces in quite the same way they did before reading The Humane Interface.

图书前言

Like an Schaum's Outline Series books, this volume is intended to be used primarily for self study, preferably in conjunction with a regular course in data structures. However, it is also well-suited for use in independent study or as a reference.
  The book includes over 200 examples and solved problems. I firmly believe that the principles of data structures can be learned from a well-constructed collection of examples with complete explanations. This book is designed to provide that support.
  Source code for all the examples and problems in this book can be downloaded either from my website at http : //projectEuclid.net/schaums/dswj / or from its mirror site at http : //www. richmond. edu/.-hubbard/schaums/dewj /. Any corrections or addenda for the book will also be available at alese sites.
  I wish to thank all my friends, colleagues, students, and the McGraw-Hill staff who have helped me with the critical review of this manuscript. Special thank to my wife and colleague,Anita H. Hubbard, for her advice, encouragement and creative ideas for this book. Many of the original problems used here are hers.
  JoHN R. HUBBARD
  Richmond, Virginia
  JOHN R. HUBBARD is Professor of Mathematics and Computer Science at the University of Richmond. He received his Ph.D. from the University of Michigan in 1973 and has been a member of the Richmond faculty since 1983. His primary interests are in numerical algorithms and database systems. Dr. Hubbard's other Schaum's Outline books include Programming tith C++, Programming with Java, Fundamentals of Computing with C++, and Data Structures with C++.

图书目录

Chapter 1 Review of Java 1
1.1 Object-Oriented Programming 1
1.2 The Java Programming Language 1
1.3 Variables and Objects 1
1.4 Primitive Types 3
1.5 Flow Control 4
1.6 Classes 7
1.7 Modifiers 9
1.8 The String Class 10
1.9 The Math Class 13
Chapter 2 Review of Arrays 23
2.1 Properties of Arrays 23
2.2 Duplicating an Array 24
2.3 The Arrays Class 25
2.4 The Sequential Search Algorithm 28
2.5 The Binary Search Algorithm 31
2.6 The Vector Class 33
Chapter 3 Advanced Java 53
3.1 Inheritance 53
3.2 Polymorphism 54
3.3 Type Conversion 55
3.4 The Object Class 58
3.5 Abstract Classes 60
3.6 Interfaces 63
3.7 Packages 66
3.8 Exception Handling 67
Chapter 4 Recursion 73
4.1 The Basis and Recursive Parts of Recursion 74
4.2 Tracing a Recursive Call 75
4.3 The Recursive Binary Search Algorithm 75
4.4 Binomial Coefficients 78
4.5 The Euclidean Algorithm 79
4.6 Inductive Proof of Correctness 79
4.7 Complexity Analysis of Recursive Algorithms 80
4.8 Dynamic Programming 81
4.9 The Towers of Hanoi 82
4.10 Mutual Recursion 83
Chapter 5 Collections 94
5.1 The Java Collections Framework 94
5.2 The Collection Interface 95
5.3 The AbstractCollection Class 95
5.4 A Bag Class 96
5.5 The Iterator Interface 103
Chapter 6 Stacks 109
6.1 The Java Stack Class 109
6.2 Applications of Stacks 112
6.3 Removing Recursion 115
Chapter 7 Queues 123
7.1 A Framework for Queues 123
7.2 A Contiguous Implementation 126
7.3 A Linked Implementation 129
7.4 Simulation with Queues 130
Chapter 8 Lists 144
8.1 The java.util.List Interface 144
8.2 Implementations of the java.util.List Interface 146
8.3 The AbstractList and AbstractSequentialList Classes 146
8.4 List Iterators 148
8.5 The ArrayList Class 149
8.6 The LinkedList Class 150
8.7 Independent List Iterators 160
Chapter 9 Trees 166
9.1 Tree Definitions 167
9.2 Decision Trees and Transition Diagrams 169
9.3 Ordered Trees 172
9.4 Tree Traversal Algorithms for Ordered Trees 172
Chapter 10 Binary Trees 181
10.1 Definitions 181
10.2 Counting Binary Trees 182
10.3 Full Binary Trees 183
10.4 Identity, Equality, and Isomorphism 184
10.5 Complete Binary Trees 186
10.6 Binary Tree Traversal Algorithms 187
10.7 Expression Trees 190
10.8 A BinaryTree Class 192
10.9 Implementations of the Traversal Algorithms 196
10.10 Forests 199
Chapter 11 Search Trees 210
11.1 Multiway Search Trees 210
11.2 B-Trees 212
11.3 Binary Search Trees 214
11.4 Performance Characteristics of Binary Search Trees 216
11.5 AVL Trees 216
11.6 An AVLTree Class 217
Chapter 12 Heaps and Priority Queues 225
12.1 Heaps 225
12.2 The Natural Mapping 225
12.3 Insertion into a Heap 226
12.4 Removal from a Heap 227
12.5 A PriorityQueue Class 228
12.6 The Java Comparator Interface 229
12.7 A Direct Implementation 231
Chapter 13 Sorting 243
13.1 The Java Arrays.sort() Method 243
13.2 The Bubble Sort 244
13.3 The Selection Sort 245
13.4 The Insertion Sort 246
13.5 The Shell Sort 247
13.6 The Merge Sort 249
13.7 The Quick Sort 252
13.8 The Heap Sort 254
13.9 The Speed Limit for Comparison Sorts 258
13.10 The Radix Sort 259
13.11 The Bucket Sort 261
Chapter 14 Tables 275
14.1 The Java Map Interface 275
14.2 The HashMap Class 276
14.3 Java Hash Codes 277
14.4 Hash Tables 278
14.5 Hash Table Performance 280
14.6 Collision Resolution Algorithms 280
14.7 Separate Chaining 283
14.8 Applications 284
14.9 The TreeMap Class 286
Chapter 15 Sets 293
15.1 Mathematical Sets 293
15.2 The Java Set Interface 294
15.3 The Java AbstractSet Class 294
15.4 The Java HashSet Class 295
15.5 The Java TreeSet Class 297
Chapter 16 Graphs 301
16.1 Simple Graphs 301
16.2 Graph Terminology 301
16.3 Paths and Cycles 302
16.4 Isomorphic Graphs 304
16.5 The Adjacency Matrix for a Graph 306
16.6 The Incidence Matrix for a Graph 306
16.7 The Adjacency List for a Graph 307
16.8 Digraphs 308
16.9 Paths in a Digraph 310
16.10 Weighted Digraphs and Graphs 310
16.11 Euler and Hamiltonian Paths and Cycles 311
16.12 Dijkstra's Algorithm 312
16.13 Graph Traversal Algorithms 316
Appendix A Essential Mathematics 333
A.1 The Floor and Ceiling Function 333
A.2 Logarithms 333
A.3 Complexity Classes 335
A.4 The First Principle of Mathematical Induction 336
A.5 The Second Principle of Mathematical Induction 337
A.6 Geometric Series 338
A.7 Summation Formulas 339
A.8 Harmonic Numbers 339
A.9 Stirling's Formula 341
A.10 The Fibonacci Numbers 342
A.11 The Golden Mean 342
A.12 The Euclidean Algorithm 343
A.13 The Catalan Numbers 344
Appendix B From C++ to Java 353
Appendix C Java Development Environments 356
C.1 The Windows Command Prompt 356
C.2 Visual Cafe from Webgain 356
Appendix D References 361
Index 365

教学资源推荐
作者: 毛科技 陈立建 主编
作者: [美] 内尔·黛尔(Nell Dale)/得克萨斯大学奥斯汀分校 约翰·路易斯(John Lewis)/弗吉尼亚理工大学 著
作者: 苏仕华 刘燕君 刘振安 编著
作者: 刘春燕、吴黎兵、黄华
参考读物推荐
作者: [美]戴维·埃文斯(David Evans),弗拉基米尔·科列斯尼科夫( Vladimir Kolesnikov),迈克·罗苏莱克(Mike Rosulek)著
作者: 于中华等
作者: [美]迈克尔·吉内塞雷斯(Michael Genesereth),[美]维奈·K.乔杜里(Vinay K. Chaudhri) 著
作者: (美)Tim Mather;Subra Kumaraswamy;Shahed Latif 著