出版時(shí)間:1999-12 出版社:清華大學(xué)出版社 作者:Duane A.Bailey 頁(yè)數(shù):369
Tag標(biāo)簽:無(wú)
內(nèi)容概要
這是一本讓讀存在現(xiàn)代程序設(shè)計(jì)環(huán)境中學(xué)習(xí)如何生成和分析常用數(shù)據(jù)結(jié)構(gòu)的教材。書中介紹了如何用Java語(yǔ)言設(shè)計(jì)與實(shí)現(xiàn)傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)。本書目下列情點(diǎn):
·用Java這一開放的、純面向?qū)ο蟮恼Z(yǔ)著作為描述語(yǔ)言。
·采用面向?qū)ο蠓椒▉?lái)設(shè)計(jì)傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu);引入類、并面、繼承、封裝等思想。
·全書結(jié)枸嚴(yán)謹(jǐn),前后連接自然,內(nèi)容簡(jiǎn)潔而又清晰。
·使用適應(yīng)于事物本易規(guī)律的方法來(lái)描述事物,亦即用對(duì)象、類這一封裝了數(shù)據(jù)和操作的結(jié)構(gòu)來(lái)描還數(shù)據(jù)組織。
·不僅講述了如何用Java實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)且抽象出一般的設(shè)計(jì)原則掌握并靈活運(yùn)用這些原則可以使讀香受益非淺。
·書中有50多個(gè)已實(shí)現(xiàn)并經(jīng)過(guò)測(cè)試的類。這些類構(gòu)成一個(gè)結(jié)構(gòu)包,可以作為程序員編程的基礎(chǔ)。
·書中有大量實(shí)例,吉訴讀著如何去使用定義好的數(shù)據(jù)結(jié)構(gòu)。
·每一章后有大量精心設(shè)計(jì)的提問(wèn),目以幫助讀者復(fù)習(xí)和進(jìn)一步提高。
本書適合于本科高年級(jí)學(xué)生使用。本書附錄A雖有Java語(yǔ)言的簡(jiǎn)介,但對(duì)不熟悉Java語(yǔ)言的讀者,建議最好在學(xué)習(xí)本書軛花上幾周時(shí)間了解Java語(yǔ)言。
書籍目錄
Preface 0 Introduction0.1 Read Me0.2 He Cant Say That, Can He?1 The Object-Oriented Method1.1 Data Abstraction and Encapsulationl.2 The Object Model1.3 Object-Oriented Terminology1.4 Sketching an Example: A Word Listl.5 A Special Purpose Class: A Bank Account1.6 AGeneral Purpose Class: An Association1.7 Interfacesl.8 Who Is the User?l.9 Conclusions2 Comments, Conditions, and Assertions2.1 Pre- and Postconditions2.2 Assertions2.3 Craftsmanship2.4 Conclusions3 Vectors3.1 Application: The Word List Revisited3.2 Application: Word Frequency3.3 The Interface3.4 The Implementation3.5 Extensibility: A Feature3.6 Application: The Matrix Class3.7 Conclusions4 Design Thndamentals4.1 Asymptotic Analysis Tools4.1.1 Time and Space Complexity4.1.2 Examples4.1.3 The Trading of Time and Space4.2 Self Reference4.2.1 Recursion4.2.2 Mathematical Induction4.3 Properties of Design4.3.1 Symmetry4.3.2 Friction4.4 Conclusions5 Sorting5.1 Approaching the Problem5.2 Selection Sort5.3 Insertion Sort5.4 Mergesort5.5 QuickPort5.6 Sorting Objects5.7 Vector-Based Sorting5.8 Conclusions6 Lists6.1 Example: A Unique Program6.2 Example: Free-Lists6.3 Implementation: Singly-Linked Lists6.4 Implementation: Doubly-Linked Lists6.5 Implementation: Circularly-Linked Lists6.6 Conclusions7 Linear Structures7.1 Stacks7.1.1 Example: Simulating Recursion7.1.2 Vector-Based Stacks7.1.3 List-Based Stacks7.1.4 Comparisons7.2 Queues7.2.1 Example: Solving a Coin Puzzle7.2.2 List-Based Queues7.2.3 Vector-Based Queues7.2.4 Array-Based Queues7.3 Example: Solving Mazes7.4 Conclusions8 Iterates 18.1 Javas Enumeration Interface8.2 The Iterate Interface8.3 Example: Vector Iterates8.4 Example: List Iterates8.5 Example: Filtering Iterates8.6 Conclusions9 Ordered Structures9.1 Comparable Objects9.1.1 Example: Comparable Integers9.1.2 Example: Comparable Associations9.2 Keeping Structures Ordered9.2.1 The OrderedStructure Interface9.2.2 The Ordered Vector9.2.3 Example: Sorting9.2.4 The Ordered List9.2.5 Example: The Modified Parking Lot9.3 Conclusions10 Thesel0.1 Terminology10.2 TheInterfacel0.3 Motivating Example: Expression Trees10.4 Implementationl0.4.1 The BinaryTreeNode Implementationl0.4.2 implementation of the BinaryTree Wrapper10.5 Traversalsl0.5.1 Preorder Traversall0.5.2 Ignored Traversall0.5.3 Postured Traversall0.5.4 Levelorder Traversal10.5.5 Recursion in Iteratesl0.6 Property-Based Methods10.7 Example: Huffman Compression10.8 Conclusions11 Priority Queuesl1.1 The Interface11.2 Example: Improving the Huffman Codel1.3 Priority Vectorsll.4 A Heap Implementation1l.4.1 Vector-Based Heapsll.4.2 Example: Heapsort11.4.3 Skew Heapsl1.5 Example: Circuit Simulationl1.6 Conclusions12 Search kneesl2.1 Binary Search Trees12.2 Example: Tree Sortl2.3 Implementation12.4 Splay Treesl2.5 Splay Tree Implementationl2.6 Conclusions13 Dictionaries13.1 TheInterfacel3.2 Unit Cost Dictionaries: Hash Tablesl3.2.1 Open Addressingl3.2.2 External Chaining13.2.3 Generation of Hash Codes13.2.4 Analysis13.3 Ordered Dictionaries and Tables13.4 Example: Document Indexing13.5 Conclusions14 Graphsl4.1 Terminologyl4.2 The Graph Interface14.3 Implementationsl4.3.1 Abstract Classes14.3.2 Adjacency Matricesl4.3.3 Adjacency Lists14.4 Examples: Common Graph Algorithmsl4.4.1 Ratability14.4.2 Topological Sorting14.4.3 Transitive Closure14.4.4 All Pairs Minimum Distance14.4.5 Greedy Algorithmsl4.5 ConclusionsA A Sip of JavaA.1 A First ProgramA.2 DeclarationsA.2.1 Primitive TypesA.2.2 Reference TypesA.3 Important ClassesA.3.1 The roadster!n ClassA.3.2 PrintStreamsA.3.3 StringsA.4 Control ConstructsA.4.1 Conditional StatementsA.4.2 LoopsA.5 MethodsA.6 Inheritance and SubtypingA.6.1 InheritanceA.6.2 SubtypingA.6.3 Interfaces and Abstract ClassesB Use of the Keyword ProtectedC PrinciplesD Structure Package HierarchyE Selected Answers
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
數(shù)據(jù)結(jié)構(gòu)Java描述--數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)原則與Java實(shí)現(xiàn) PDF格式下載