DATA STRUCTURES AND PROBLEM SOLVING USING JAVAPDF电子书下载
外文
- 作 者:
- 出 版 社:ADDISON-WESLEY
- 出版年份:1998
- ISBN:0201549913
- 页数:780 页
图书介绍: 查看图书目录点击购买PDF全本电子书 上一篇:EARLY MORTALITY SYNDROME OF SHRIMP SEVENTH SESSION OF COFI/SCA FAN 51 JUNE 2013下一篇:THE LITTLE POCKET CHINESE-ENGLISH DICTIONARY 《DATA STRUCTURES AND PROBLEM SOLVING USING JAVA》目录 标签:
Part Ⅰ:Tour of Java3
CHAPTER 1 Primitive Java3
1.1 The General Environment4
1.2 The First Program5
1.2.1 Comments5
1.2.2 main6
1.2.3 Terminal Output6
1.3 Primitive Types6
1.3.1 The Primitive Types6
1.3.2 Constants7
1.3.3 Declaration and Initialization of Primitive Types7
1.3.4 Terminal Input and Output8
1.4 Basic Operators8
1.4.1 Assignment Operators9
1.4.2 Binary Arithmetic Operators10
1.4.3 Unary Operators10
1.4.4 Type Conversions10
1.5 Conditional Statements11
1.5.1 Relational and Equality Operators11
1.5.2 Logical Operators12
1.5.3 The i f Statement13
1.5.4 The while Statement14
1.5.5 The for Statement14
1.5.6 The do Statement15
1.5.7 break and continue16
1.5.8 The switch Statement17
1.5.9 The Conditional Operator17
1.6 Methods18
1.6.1 Overloading of Method Names19
1.6.2 Storage Classes20
Summary20
Objects of the Game20
Common Errors22
On the Internet23
Exercises23
References25
CHAPTER 2 References27
2.1 What Is a Reference?27
2.2 Basics of Objects and References29
2.2.1 The Dot Operator (.)30
2.2.2 Declaration of Objects30
2.2.3 Garbage Collection31
2.2.4 The Meaning of =31
2.2.5 Parameter Passing32
2.2.6 The Meaning of ==33
2.2.7 Operator Overloading for Objects33
2.3 Strings33
2.3.1 Basics of String Manipulation34
2.3.2 String Concatenation34
2.3.3 Comparing Strings35
2.3.4 Other String Methods35
2.3.5 Converting between Strings and Primitive Types35
2.4 Arrays36
2.4.1 Declaration,Assignment,and Methods36
2.4.2 Dynamic Array Expansion39
2.4.3 Multidimensional Arrays41
2.4.4 Command-line Arguments41
2.5 Exception Handling42
2.5.1 Processing Exceptions42
2.5.2 The finally Clause43
2.5.3 Common Exceptions43
2.5.4 The throw and throws Clauses44
2.6 Input and Output45
2.6.1 Basic Stream Operations46
2.6.2 The StringTokenizer Object46
2.6.3 Sequential Files47
Summary49
Objects of the Game49
Common Errors51
On the Internet51
Exercises51
References52
CHAPTER 3 Objects and Classes53
3.1 What Is Object-oriented Programming?53
3.2 A Simple Example55
3.3 Javadoc57
3.4 Basic Methods58
3.4.1 Constructors58
3.4.2 Mutators and Accessors60
3.4.3 Output and toString60
3.4.4 equals62
3.4.5 static Methods62
3.4.6 main62
3.5 Packages62
3.5.1 The import Directive63
3.5.2 The package Statement64
3.5.3 The CLASSPATH Environment Variable65
3.5.4 Package-friendly Visibility Rules66
3.5.5 Separate Compilation66
3.6 Additional Constructs66
3.6.1 The this Reference66
3.6.2 The this Shorthand for Constructors67
3.6.3 The instanceof Operator68
3.6.4 Static Fields68
3.6.5 Static Initializers69
Summary70
Objects of the Game70
Common Errors71
On the Internet72
Exercises72
References74
CHAPTER 4 Inheritance75
4.1 What Is Inheritance?75
4.2 Basic Java Syntax78
4.2.1 Visibility Rules79
4.2.2 The Constructor and super79
4.2.3 final Methods and Classes80
4.2.4 Overriding a Method81
4.2.5 Abstract Methods and Classes82
4.3 Example:Expanding the Shape Class84
4.3.1 Digression:An Introduction to Sorting86
4.4 Multiple Inheritance90
4.5 The Interface90
4.5.1 Specifying an Interface91
4.5.2 Implementing an Interface91
4.5.3 Multiple Interfaces94
4.6 Implementing Generic Components94
Summary97
Objects of the Game98
Common Errors99
On the Internet100
Exercises100
References102
Part Ⅱ:Algorithms and Building Blocks107
CHAPTER 5 Algorithm Analysis107
5.1 What Is Algorithm Analysis?107
5.2 Examples of Algorithm Running Times111
5.3 The Maximum Contiguous Subsequence Sum Problem113
5.3.1 The Obvious O(N3) Algorithm114
5.3.2 An Improved O(N2) Algorithm117
5.3.3 A Linear Algorithm118
5.4 General Big-Oh Rules121
5.5 The Logarithm124
5.6 Static Searching Problem127
5.6.1 Sequential Search127
5.6.2 Binary Search128
5.6.3 Interpolation Search129
5.7 Checking an Algorithm Analysis131
5.8 Limitations of Big-Oh Analysis133
Summary133
Objects of the Game134
Common Errors134
On the Internet135
Exercises135
References139
CHAPTER 6 Data Structures143
6.1 Why Do We Need Data Structures?143
6.2 Stacks145
6.2.1 Stacks and Computer Languages147
6.3 Queues148
6.4 Linked Lists150
6.5 General Trees155
6.6 Binary Search Trees157
6.7 Hash Tables161
6.8 Priority Queues163
Summary166
Objects of the Game167
Common Errors168
On the Internet168
Exercises169
References172
CHAPTER 7 Recursion173
7.1 What Is Recursion?173
7.2 Background:Proofs by Mathematical Induction174
7.3 Basic Recursion177
7.3.1 Printing Numbers in Any Base179
7.3.2 Why It Works180
7.3.3 How It Works182
7.3.4 Too Much Recursion Can Be Dangerous183
7.3.5 Additional Examples185
7.4 Numerical Applications189
7.4.1 Modular Arithmetic190
7.4.2 Modular Exponentiation190
7.4.3 Greatest Common Divisor and Multiplicative Inverses192
7.4.4 The RSA Cryptosystem194
7.5 Divide-and-Conquer Algorithms197
7.5.1 The Maximum Contiguous Subsequence Sum Problem197
7.5.2 Analysis of a Basic Divide-and-Conquer Recurrence199
7.5.3 A General Upper Bound for Divide-and-Conquer Running Times204
7.6 Dynamic Programming207
7.7 Backtracking Algorithms211
Summary214
Objects of the Game215
Common Errors217
On the Internet217
Exercises218
References221
CHAPTER 8 Sorting Algorithms223
8.1 Why Is Sorting Important?223
8.2 Preliminaries225
8.3 Analysis of the Insertion Sort and Other Simple Sorts225
8.4 Shellsort227
8.4.1 Performance of Shellsort229
8.5 Mergesort231
8.5.1 Linear-time Merging of Sorted Arrays231
8.5.2 The Mergesort Algorithm234
8.6 Quicksort235
8.6.1 The Quicksort Algorithm235
8.6.2 Analysis of Quicksort236
8.6.3 Picking the Pivot240
8.6.4 A Partitioning Strategy241
8.6.5 Keys Equal to the Pivot244
8.6.6 Median-of-three Partitioning244
8.6.7 Small Arrays245
8.6.8 Java Quicksort Routine246
8.7 Quickselect248
8.8 A Lower Bound for Sorting250
Summary251
Objects of the Game251
Common Errors252
On the Internet252
Exercises253
References256
CHAPTER 9 Randomization259
9.1 Why Do We Need Random Numbers?259
9.2 Random-number Generators260
9.3 Nonuniform Random Numbers265
9.4 Generating a Random Permutation268
9.5 Randomized Algorithms269
9.6 Randomized Primality Testing271
Summary275
Objects of the Game275
Common Errors276
On the Internet277
Exercises277
References279
Part Ⅲ:Applications283
CHAPTER 10 Fun and Games283
10.1 Word Search Puzzles283
10.1.1 Theory283
10.1.2 Java Implementation288
10.2 The Game of Tic-Tac-Toe292
10.2.1 Alpha-beta Pruning292
10.2.2 Transposition Tables293
10.2.3 Computer Chess298
Summary299
Objects of the Game299
Common Errors300
On the Internet300
Exercises300
References302
CHAPTER 11 Stacks and Compilers303
11.1 Balanced-symbol Checker303
11.1.1 Basic Algorithm303
11.1.2 Implementation306
11.2 A Simple Calculator313
11.2.1 Postfix Machines314
11.2.2 Infix to Postfix Conversion316
11.2.3 Implementation318
11.2.4 Expression Trees326
Summary327
Objects of the Game327
Common Errors328
On the Internet328
Exercises329
References330
CHAPTER 12 Utilities331
12.1 File Compression331
12.1.1 Prefix Codes332
12.1.2 Huffman’s Algorithm334
12.1.3 The Encoding Phase337
12.1.4 Decoding Phase337
12.1.5 Practical Considerations338
12.2 A Cross-reference Generator338
12.2.1 Basic Ideas339
12.2.2 Java Implementation339
Summary343
Objects of the Game345
Common Errors345
On the Internet345
Exercises345
References348
CHAPTER 13 Simulation349
13.1 The Josephus Problem349
13.1.1 The Simple Solution350
13.1.2 A More Efficient Algorithm352
13.2 Event-driven Simulation354
13.2.1 Basic Ideas354
13.2.2 Example:A Modem Bank Simulation356
Summary363
Objects of the Game363
Common Errors364
On the Internet364
Exercises364
CHAPTER 14 Graphs and Paths367
14.1 Definitions367
14.1.1 Representation369
14.2 Unweighted Shortest-path Problem379
14.2.1 Theory382
14.2.2 Java Implementation386
14.3 Positive-weighted,Shortest-path Problem387
14.3.1 Theory:Dijkstra’s Algorithm387
14.3.2 Java Implementation390
14.4 Negative-weighted,Shortest-path Problem393
14.4.1 Theory393
14.4.2 Java Implementation395
14.5 Path Problems in Acyclic Graphs395
14.5.1 Topological Sorting396
14.5.2 Theory of the Acyclic Shortest-path Algorithm398
14.5.3 Java Implementation399
14.5.4 An Application:Critical-path Analysis399
Summary403
Objects of the Game403
Common Errors405
On the Internet405
Exercises405
References408
Part Ⅳ:Implementations411
CHAPTER 15 Stacks and Queues411
15.1 Dynamic Array Implementations411
15.1.1 Stacks411
15.1.2 Queues416
15.2 Linked-list Implementations421
15.2.1 Stacks422
15.2.2 Queues426
15.3 Comparison of the Two Methods428
15.4 Double-ended Queues428
Summary429
Objects of the Game430
Common Errors430
On the Internet430
Exercises430
CHAPTER 16 Linked Lists433
16.1 Basic Ideas433
16.1.1 Header Nodes435
16.1.2 Iterator Classes436
16.2 Java Implementation437
16.3 Doubly Linked Lists and Circular Linked Lists445
16.4 Sorted Linked Lists447
Summary450
Objects of the Game450
Common Errors450
On the Internet451
Exercises451
CHAPTER 17 Trees455
17.1 General Trees455
17.1.1 Definitions455
17.1.2 Implementation457
17.1.3 An Application:File Systems459
17.2 Binary Trees463
17.3 Recursion and Trees468
17.4 Tree Traversal:Iterator Classes471
17.4.1 Postorder Traversal474
17.4.2 Inorder Traversal477
17.4.3 Preorder Traversal477
17.4.4 Level-order Traversals481
Summary483
Objects of the Game483
Common Errors484
On the Internet484
Exercises485
CHAPTER 18 Binary Search Trees489
18.1 Basic Ideas489
18.1.1 The Operations490
18.1.2 Java Implementation494
18.2 Order Statistics500
18.2.1 Java Implementation500
18.3 Analysis of Binary Search Tree Operations504
18.4 AVL Trees508
18.4.1 Properties509
18.4.2 Single Rotation511
18.4.3 Double Rotation512
18.4.4 Summary of AVL Insertion515
18.5 Red-Black Trees517
18.5.1 Bottom-up Insertion518
18.5.2 Top-down Red-Black Trees520
18.5.3 Java Implementation522
18.5.4 Top-down Deletion526
18.6 AA-Trees530
18.6.1 Insertion532
18.6.2 Deletion536
18.6.3 Java Implementation537
18.7 B-Trees540
Summary545
Objects of the Game546
Common Errors547
On the Internet547
Exercises548
References550
CHAPTER 19 Hash Tables553
19.1 Basic Ideas553
19.2 Hash Function554
19.3 Linear Probing557
19.3.1 Naive Analysis of Linear Probing558
19.3.2 What Really Happens:Primary Clustering560
19.3.3 Analysis of the f ind Operation560
19.4 Quadratic Probing562
19.4.1 Java Implementation568
19.4.2 Analysis of Quadratic Probing572
19.5 Separate Chaining Hashing573
Summary573
Objects of the Game575
Common Errors575
On the Internet576
Exercises576
References578
CHAPTER 20 A Priority Queue:The Binary Heap581
20.1 Basic Ideas581
20.1.1 Structure Property582
20.1.2 Heap-order Property584
20.1.3 Allowed Operations584
20.2 Implementation of the Basic Operations588
20.2.1 insert588
20.2.2 deleteMin591
20.3 fixHeap:Linear Time Heap Construction593
20.4 Advanced Operations:decreasekey and merge598
20.5 Internal Sorting:Heapsort598
20.6 External Sorting601
20.6.1 Why We Need New Algorithms601
20.6.2 Model for External Sorting602
20.6.3 The Simple Algorithm602
20.6.4 Multiway Merge604
20.6.5 Polyphase Merge604
20.6.6 Replacement Selection607
Summary608
Objects of the Game608
Common Errors609
On the Internet610
Exercises610
References612
Part Ⅴ:Advanced Data Structures617
CHAPTER 21 Splay Trees617
21.1 Self-adjustment and Amortized Analysis617
21.1.1 Amortized Time Bounds618
21.1.2 A Simple Self-adjusting Strategy (That Does Not Work)619
21.2 The Basic Bottom-up Splay Tree621
21.3 Basic Splay Tree Operations623
21.4 Analysis of Bottom-up Splaying624
21.4.1 Proof of the Splaying Bound627
21.5 Top-down Splay Trees630
21.6 Implementation of Top-down Splay Trees633
21.7 Comparison of the Splay Tree with Other Search Trees636
Summary640
Objects of the Game640
Common Errors640
On the Internet641
Exercises641
References642
CHAPTER 22 Merging Priority Queues643
22.1 The Skew Heap643
22.1.1 Merging Is Fundamental643
22.1.2 Simplistic Merging of Heap-ordered Trees644
22.1.3 The Skew Heap:A Simple Modification645
22.1.4 Analysis of the Skew Heap646
22.2 The Pairing Heap648
22.2.1 Pairing Heap Operations and Theory649
22.2.2 Implementation of the Pairing Heap651
22.2.3 Application:Dijkstra’s Shortest Weighted Path Algorithm660
Summary660
Objects of the Game661
Common Errors661
On the Internet661
Exercises661
References662
CHAPTER 23 The Disjoint Set Class665
23.1 Equivalence Relations665
23.2 Dynamic Equivalence and Two Applications666
23.2.1 Application #1:Minimum Spanning Trees667
23.2.2 Application #2:The Nearest Common Ancestor Problem669
23.3 The Quick-find Algorithm672
23.4 The Quick-union Algorithm674
23.4.1 Smart Union Algorithms676
23.4.2 Path Compression677
23.5 Java Implementation679
23.6 Worst Case for Union-by-rank and Path Compression681
23.6.1 Analysis of the Union/Find Algorithm682
Summary689
Objects of the Game689
Common Error690
On the Internet690
Exercises690
References692
APPENDICES697
APPENDIXA Java Platforms697
A.1 Setting the Environment697
A.1.1 Unix Instructions698
A.1.2 Windows 95/NT Instructions699
A.2 Sun’s JDK700
A.3 Visual Development Environments700
A.3.1 Symantec Cafe701
A.3.2 Microsoft Visual J++707
APPENDIX B Operators713
APPENDIX C Some Library Routines715
C.1 Classes in Package java.lang715
C.1.1 Character715
C.1.2 Integer716
C.1.3 Object717
C.1.4 String718
C.1.5 StringBuffer719
C.1.6 System721
C.1.7 Thread723
C.1.8 Throwable723
C.2 Classes in Package java.io724
C.2.1 BufferedReader724
C.2.2 File725
C.2.3 FileReader726
C.2.4 InputStreamReader726
C.2.5 PushbackReader727
C.3 Classes in Package java.util727
C.3.1 Random728
C.3.2 StringTokenizer728
C.3.3 Vector730
On the Internet730
APPENDIXD Graphical User Interfaces731
D.1 The Abstract Window Toolkit731
D.2 Basic Objects in the AWT732
D.2.1 Component733
D.2.2 Container734
D.2.3 Top-level Windows734
D.2.4 Panel736
D.2.5 Important I/O Components736
D.3 Basic AWT Principles741
D.3.1 Layout Managers741
D.3.2 Graphics745
D.3.3 Events747
D.3.4 Summary:Putting the Pieces Together750
D.4 Animations and Threads750
D.5 Applets753
D.5.1 Hypertext Markup Language753
D.5.2 Parameters756
D.5.3 Applet Limitations756
D.5.4 Making an Application an Applet758
D.5.5 Applets with Animation760
Summary762
Objects of the Game762
Common Errors764
On the Internet765
Exercises766
Reference768
Index769
相关图书
作者其它书籍
出版社其它书籍
本类热门
- 1PERIODICAL TITLE ABBREVIATIONS
- 2LEWIN’S GENES XII
- 3Mansfield Park(1814)
- 4CREDIT MODELS AND CRISIS
- 5Pride And Drejudice(1812)
- 6Sense And Sensibility(1811)
- 7HANDBOOK OF BUSINESS FORMULAS AND CONTROLS
- 8Emma(1815)
- 9Northanger Abbey(1818)
- 10HUMANITIES THE EVOLUTION OF VALUES
摘要:本文以《DATA STRUCTURES AND PROBLEM SOLVING USING JAVA.pdf》电子书版文档下载为中心,全面阐述了该电子书在数据结构与问题解决方面的内容。通过分析其结构、内容、应用和评价,为读者提供了一份全面了解该电子书的指南。
1、结构概述
《DATA STRUCTURES AND PROBLEM SOLVING USING JAVA.pdf》电子书版以Java编程语言为基础,系统地介绍了数据结构与算法的相关知识。全书共分为12章,涵盖了数据结构的基本概念、线性表、栈与队列、树与二叉树、图、排序与查找等内容。结构清晰,逻辑严谨,便于读者循序渐进地学习。
本书在内容组织上,注重理论与实践相结合。每章都配有丰富的实例和习题,帮助读者巩固所学知识。此外,书中还穿插了大量的图表,使抽象的概念更加直观易懂。
在结构设计上,本书遵循了由浅入深、循序渐进的原则。从基本的数据结构开始,逐步深入到复杂的数据结构,使读者能够逐步掌握数据结构与算法的核心思想。
2、内容详述
本书内容丰富,涵盖了数据结构与算法的各个方面。以下列举几个重点章节的内容:
第一章:介绍了数据结构的基本概念,包括数据、数据元素、数据结构等。
第二章:详细讲解了线性表、栈与队列的基本原理和操作方法。
第三章:介绍了树与二叉树的基本概念、性质和操作方法。
第四章:阐述了图的基本概念、性质和操作方法,并介绍了图的遍历算法。
第五章:介绍了排序与查找的基本原理和算法,包括插入排序、快速排序、归并排序等。
3、应用分析
《DATA STRUCTURES AND PROBLEM SOLVING USING JAVA.pdf》电子书版在应用方面具有广泛的前景。以下列举几个应用场景:
1. 软件开发:数据结构与算法是软件开发的基础,掌握数据结构与算法有助于提高编程能力。
2. 数据分析:在数据挖掘、机器学习等领域,数据结构与算法发挥着重要作用。
3. 算法竞赛:参加算法竞赛需要具备扎实的算法基础,本书可为参赛者提供有益的指导。
4、评价总结
《DATA STRUCTURES AND PROBLEM SOLVING USING JAVA.pdf》电子书版具有以下优点:
1. 内容全面:涵盖了数据结构与算法的各个方面,适合不同层次的读者。
2. 结构清晰:逻辑严谨,便于读者循序渐进地学习。
3. 实例丰富:配有大量的实例和习题,帮助读者巩固所学知识。
4. 适合自学:无需教师指导,读者可自主学习和掌握数据结构与算法。
总结:
《DATA STRUCTURES AND PROBLEM SOLVING USING JAVA.pdf》电子书版是一本优秀的Java数据结构与算法学习资料。通过学习本书,读者可以全面掌握数据结构与算法的知识,提高编程能力。
本文由nayona.cn整理
联系我们
关注公众号
微信扫一扫
支付宝扫一扫