{{ bookSummary.author }} 지음 {{ bookSummary.publishingCompany }} | {{ bookSummary.date }}
{{ bookSummary.bookType }}
한빛아카데미
원서
판매중
책소개
Based on the authors’ market leading data structures books in Java and C++, this book offers a comprehensive, definitive introduction to data structures in Python by authoritative authors. Data Structures and Algorithms in Python is the first authoritative object-oriented book available for Python data structures. Designed to provide a comprehensive introduction to data structures and algorithms, including their design, analysis, and implementation, the text will maintain the same general structure as Data Structures and Algorithms in Java and Data Structures and Algorithms in C++.
Begins by discussing Python’s conceptually simple syntax, which allows for a greater focus on concepts.Employs a consistent object-oriented viewpoint throughout the text.Presents each data structure using ADTs and their respective implementations and introduces important design patterns as a means to organize those implementations into classes, methods, and objects.Provides a thorough discussion on the analysis and design of fundamental data structures.Includes many helpful Python code examples, with source code provided on the website.Uses illustrations to present data structures and algorithms, as well as their analysis, in a clear, visual manner.Provides hundreds of exercises that promote creativity, help readers learn how to think like programmers, and reinforce important concepts.Contains many Python-code and pseudo-code fragments, and hundreds of exercises, which are divided into roughly 40% reinforcement exercises, 40% creativity exercises, and 20% programming projects.
New feature
This all-new Data Structures and Algorithms in Python is designed to provide an introduction to data structures and algorithms, including their design, analysis, and implementation. The authors take advantage of the beauty and simplicity of Python to present executable source code that is clear and concise. Furthermore, a consistent object-oriented viewpoint is retained throughout the book, including the use of inheritance, both to maximize code reuse and to draw attention to the clear similarities and differences of various abstract data types and algorithmic approaches.
This is a “sister” book to Goodrich & Tamassia’s Data Structures and Algorithms in Java and Goodrich, Tamassia and Mount’s Data Structures and Algorithms in C++. This Python version retains much of the same pedagogical approach and general structure as the Java and C++ versions, so that curriculums that teach data structures in Python, Java, and C++ can share the same core syllabus.
Key Features of this Book
A primer that reviews the basics of programming in Python (Chapter 1), followed by a separate introduction to object-oriented programming in Python (Chapter 2).Extensive coverage of recursion (Chapter 4).A chapter describing the array-based underpinnings of Python’s standard list, string, and tuple classes (Chapter 5), including both theoretical and empirical analyses of their efficiencies.Source code with complete implementations of the majority of data structures and algorithms described in the book; the code follows modern standards for Python 3, and makes use of the standard collections module.500 illustrations that present data structures and algorithms in a clear, visual manner.More than 750 exercises, divided into categories of reinforcement, creativity, and projects.About the cover:
The cover art is based on an indigenous Australian painting style portraying what is known as Dreamtime. This style is traditionally iconic and representative of connections between points of interest or concepts; hence, it is a fitting way to capture at a high level the connections and points of interest used to visualize data structures and algorithms.
저자소개
마이클 T. 굿리치
Department of Computer ScienceUniversity of California, Irvine
최근작
Roberto Tamassia
Department of Computer ScienceBrown University
목차
Preface v1 Python Primer 11.1 Python Overview.21.2 Objects in Python.41.3 Expressions, Operators, and Precedence.121.4 Control Flow 181.5 Functions 231.6 Simple Input and Output 301.7 Exception Handling.331.8 Iterators and Generators 391.9 Additional Python Conveniences 421.10 Scopes and Namespaces 461.11 Modules and the Import Statement 481.12 Exercises 51 2 Object-Oriented Programming 562.1 Goals, Principles, and Patterns 572.2 Software Development 622.3 Class Definitions.692.4 Inheritance 822.5 Namespaces and Object-Orientation. 962.6 Shallow and Deep Copying1012.7 Exercises 103 3 Algorithm Analysis 1093.1 Experimental Studies 1113.1.1 Moving Beyond Experimental Analysis.1133.2 The Seven Functions Used in This Book.1153.3 Asymptotic Analysis.1233.4 Simple Justification Techniques 1373.5 Exercises 141 4 Recursion 1484.1 Illustrative Examples 1504.2 Analyzing Recursive Algorithms 1614.3 Recursion Run Amok 1654.4 Further Examples of Recursion1694.5 Designing Recursive Algorithms 1774.6 Eliminating Tail Recursion1784.7 Exercises 180 5 Array-Based Sequences 1835.1 Python’s Sequence Types 1845.2 Low-Level Arrays.1855.3 Dynamic Arrays and Amortization 1925.4 Efficiency of Python’s Sequence Types. 2025.5 Using Array-Based Sequences2105.6 Multidimensional Data Sets2195.7 Exercises 224 6 Stacks, Queues, and Deques 2286.1 Stacks.2296.2 Queues.2396.3 Double-Ended Queues 2476.4 Exercises 250 7 Linked Lists 2557.1 Singly Linked Lists.2567.2 Circularly Linked Lists 2667.3 Doubly Linked Lists.2707.4 The Positional List ADT 2777.5 Sorting a Positional List 2857.6 Case Study: Maintaining Access Frequencies 2867.7 Link-Based vs Array-Based Sequences. 2927.8 Exercises 294 8 Trees 2998.1 General Trees 3008.2 Binary Trees 3118.3 Implementing Trees.3178.4 Tree Traversal Algorithms3288.5 Case Study: An Expression Tree 3488.6 Exercises 352 9 Priority Queues 3629.1 The Priority Queue Abstract Data Type.3639.2 Implementing a Priority Queue 3659.3 Heaps.3709.4 Sorting with a Priority Queue3859.5 Adaptable Priority Queues3909.6 Exercises 395 10 Maps, Hash Tables, and Skip Lists 40110.1 Maps and Dictionaries 40210.2 Hash Tables 41010.3 Sorted Maps 42710.4 Skip Lists 43710.5 Sets, Multisets, and Multimaps 44610.6 Exercises 452 11 Search Trees 45911.1 Binary Search Trees.46011.2 Balanced Search Trees 47511.2.1 Python Framework for Balancing Search Trees 47811.3 AVL Trees 48111.4 Splay Trees 49011.5 (2,4) Trees 50211.6 Red-Black Trees.51211.7 Exercises 528 12 Sorting and Selection 53612.1 Why Study Sorting Algorithms? 53712.2 Merge-Sort 53812.3 Quick-Sort 55012.4 Studying Sorting through an Algorithmic Lens 56212.5 Comparing Sorting Algorithms56712.6 Python’s Built-In Sorting Functions 56912.7 Selection 57112.8 Exercises 574 13 Text Processing 58113.1 Abundance of Digitized Text58213.2 Pattern-Matching Algorithms58413.3 Dynamic Programming 59413.4 Text Compression and the Greedy Method.60113.5 Tries.60413.6 Exercises 613 14 Graph Algorithms 61914.1 Graphs.62014.2 Data Structures for Graphs62714.3 Graph Traversals.63814.4 Transitive Closure.65114.5 Directed Acyclic Graphs 65514.6 Shortest Paths65914.7 Minimum Spanning Trees 67014.8 Exercises 686 15 Memory Management and B-Trees 69715.1 Memory Management 69815.2 Memory Hierarchies and Caching 70515.3 External Searching and B-Trees 71115.4 External-Memory Sorting 71515.5 Exercises 717A Character Strings in Python 721B Useful Mathematical Facts 725Bibliography 732Index 737
Preface v
1 Python Primer 1
1.1 Python Overview.2
1.2 Objects in Python.4
1.3 Expressions, Operators, and Precedence.12
1.4 Control Flow 18
1.5 Functions 23
1.6 Simple Input and Output 30
1.7 Exception Handling.33
1.8 Iterators and Generators 39
1.9 Additional Python Conveniences 42
1.10 Scopes and Namespaces 46
1.11 Modules and the Import Statement 48
1.12 Exercises 51
2 Object-Oriented Programming 56
2.1 Goals, Principles, and Patterns 57
2.2 Software Development 62
2.3 Class Definitions.69
2.4 Inheritance 82
2.5 Namespaces and Object-Orientation. 96
2.6 Shallow and Deep Copying101
2.7 Exercises 103
3 Algorithm Analysis 109
3.1 Experimental Studies 111
3.1.1 Moving Beyond Experimental Analysis.113
3.2 The Seven Functions Used in This Book.115
3.3 Asymptotic Analysis.123
3.4 Simple Justification Techniques 137
3.5 Exercises 141
4 Recursion 148
4.1 Illustrative Examples 150
4.2 Analyzing Recursive Algorithms 161
4.3 Recursion Run Amok 165
4.4 Further Examples of Recursion169
4.5 Designing Recursive Algorithms 177
4.6 Eliminating Tail Recursion178
4.7 Exercises 180
5 Array-Based Sequences 183
5.1 Python’s Sequence Types 184
5.2 Low-Level Arrays.185
5.3 Dynamic Arrays and Amortization 192
5.4 Efficiency of Python’s Sequence Types. 202
5.5 Using Array-Based Sequences210
5.6 Multidimensional Data Sets219
5.7 Exercises 224
6 Stacks, Queues, and Deques 228
6.1 Stacks.229
6.2 Queues.239
6.3 Double-Ended Queues 247
6.4 Exercises 250
7 Linked Lists 255
7.1 Singly Linked Lists.256
7.2 Circularly Linked Lists 266
7.3 Doubly Linked Lists.270
7.4 The Positional List ADT 277
7.5 Sorting a Positional List 285
7.6 Case Study: Maintaining Access Frequencies 286
7.7 Link-Based vs Array-Based Sequences. 292
7.8 Exercises 294
8 Trees 299
8.1 General Trees 300
8.2 Binary Trees 311
8.3 Implementing Trees.317
8.4 Tree Traversal Algorithms328
8.5 Case Study: An Expression Tree 348
8.6 Exercises 352
9 Priority Queues 362
9.1 The Priority Queue Abstract Data Type.363
9.2 Implementing a Priority Queue 365
9.3 Heaps.370
9.4 Sorting with a Priority Queue385
9.5 Adaptable Priority Queues390
9.6 Exercises 395
10 Maps, Hash Tables, and Skip Lists 401
10.1 Maps and Dictionaries 402
10.2 Hash Tables 410
10.3 Sorted Maps 427
10.4 Skip Lists 437
10.5 Sets, Multisets, and Multimaps 446
10.6 Exercises 452
11 Search Trees 459
11.1 Binary Search Trees.460
11.2 Balanced Search Trees 475
11.2.1 Python Framework for Balancing Search Trees 478
11.3 AVL Trees 481
11.4 Splay Trees 490
11.5 (2,4) Trees 502
11.6 Red-Black Trees.512
11.7 Exercises 528
12 Sorting and Selection 536
12.1 Why Study Sorting Algorithms? 537
12.2 Merge-Sort 538
12.3 Quick-Sort 550
12.4 Studying Sorting through an Algorithmic Lens 562
12.5 Comparing Sorting Algorithms567
12.6 Python’s Built-In Sorting Functions 569
12.7 Selection 571
12.8 Exercises 574
13 Text Processing 581
13.1 Abundance of Digitized Text582
13.2 Pattern-Matching Algorithms584
13.3 Dynamic Programming 594
13.4 Text Compression and the Greedy Method.601
13.5 Tries.604
13.6 Exercises 613
14 Graph Algorithms 619
14.1 Graphs.620
14.2 Data Structures for Graphs627
14.3 Graph Traversals.638
14.4 Transitive Closure.651
14.5 Directed Acyclic Graphs 655
14.6 Shortest Paths659
14.7 Minimum Spanning Trees 670
14.8 Exercises 686
15 Memory Management and B-Trees 697
15.1 Memory Management 698
15.2 Memory Hierarchies and Caching 705
15.3 External Searching and B-Trees 711
15.4 External-Memory Sorting 715
15.5 Exercises 717
A Character Strings in Python 721
B Useful Mathematical Facts 725
Bibliography 732
Index 737
독자리뷰
오탈자 보기
정가 : 63,000원
판매가 : 63,000원(0% off)
마일리지 : 0점 (0%)
도서구입 안내
<한빛아카데미> 도서는 한빛 홈페이지에서 더 이상 판매를 하지 않습니다. 도서 구입은 인터넷 서점을 이용하시기 바랍니다. 양해바랍니다.
리뷰쓰기
* 리뷰 작성시 유의사항
글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.
1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨). 2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.
오탈자 등록
도서 인증
* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.
* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.
* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.
해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.장바구니로 이동하시겠습니까?