科研帝上线啦!115万本专业的英文电子书全部免费下载!

科研帝

 找回密码
 立即注册

手机号码,快捷登录

金币不够用?来这充值VIP学者,无限量下载
查看: 217|回复: 7

Data Structures and Algorithms in Python-[1]-[2013]-[pdf]-[Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser]

[复制链接]
  • TA的每日心情
    开心
    2018-10-7 11:51
  • 签到天数: 68 天

    [LV.6]常住居民II

    23

    主题

    113

    帖子

    229

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    金币
    1497
    关注领域
    物理学
    QQ
    发表于 2017-11-19 00:26:20 | 显示全部楼层 |阅读模式
    提示:本书回复后可见下载链接(点击链接后等待30秒内会自动启动下载),普通用户回复扣5金币,VIP用户免费下载。还不是VIP?点击这里加入VIP→


    免费下载30页预览文件

    书籍信息:
    标题: Data Structures and Algorithms in Python
    语言: English
    格式: pdf
    大小: 6.0M
    页数: 770
    年份: 2013
    作者: Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser
    版次: 1
    出版社: Wiley

    简介

    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.


    目录
    Cover......Page 1
    Title Page......Page 3
    Copyright Page......Page 4
    Preface......Page 7
    Contents......Page 13
    1 Python Primer......Page 23
    1.1.1 The Python Interpreter......Page 24
    1.1.2 Preview of a Python Program......Page 25
    1.2.1 Identifiers, Objects, and the Assignment Statement......Page 26
    1.2.2 Creating and Using Objects......Page 28
    1.2.3 Python’s Built-In Classes......Page 29
    1.3 Expressions, Operators, and Precedence......Page 34
    1.3.1 Compound Expressions and Operator Precedence......Page 39
    1.4.1 Conditionals......Page 40
    1.4.2 Loops......Page 42
    1.5 Functions......Page 45
    1.5.1 Information Passing......Page 46
    1.5.2 Python’s Built-In Functions......Page 50
    1.6.1 Console Input and Output......Page 52
    1.6.2 Files......Page 53
    1.7 Exception Handling......Page 55
    1.7.1 Raising an Exception......Page 56
    1.7.2 Catching an Exception......Page 58
    1.8 Iterators and Generators......Page 61
    1.9.1 Conditional Expressions......Page 64
    1.9.2 Comprehension Syntax......Page 65
    1.9.3 Packing and Unpacking of Sequences......Page 66
    1.10 Scopes and Namespaces......Page 68
    1.11 Modules and the Import Statement......Page 70
    1.11.1 Existing Modules......Page 71
    1.12 Exercises......Page 73
    2 Object-Oriented Programming......Page 78
    2.1.1 Object-Oriented Design Goals......Page 79
    2.1.2 Object-Oriented Design Principles......Page 80
    2.1.3 Design Patterns......Page 83
    2.2.1 Design......Page 84
    2.2.3 Coding Style and Documentation......Page 86
    2.2.4 Testing and Debugging......Page 89
    2.3.1 Example: CreditCard Class......Page 91
    2.3.2 Operator Overloading and Python’s Special Methods......Page 96
    2.3.3 Example: Multidimensional Vector Class......Page 99
    2.3.4 Iterators......Page 101
    2.3.5 Example: Range Class......Page 102
    2.4 Inheritance......Page 104
    2.4.1 Extending the CreditCard Class......Page 105
    2.4.2 Hierarchy of Numeric Progressions......Page 109
    2.4.3 Abstract Base Classes......Page 115
    2.5.1 Instance and Class Namespaces......Page 118
    2.5.2 Name Resolution and Dynamic Dispatch......Page 122
    2.6 Shallow and Deep Copying......Page 123
    2.7 Exercises......Page 125
    3 Algorithm Analysis......Page 131
    3.1 Experimental Studies......Page 133
    3.1.1 Moving Beyond Experimental Analysis......Page 135
    3.2 The Seven Functions Used in This Book......Page 137
    3.2.1 Comparing Growth Rates......Page 144
    3.3.1 The “Big-Oh” Notation......Page 145
    3.3.2 Comparative Analysis......Page 150
    3.3.3 Examples of Algorithm Analysis......Page 152
    3.4.2 The “Contra” Attack......Page 159
    3.4.3 Induction and Loop Invariants......Page 160
    3.5 Exercises......Page 163
    4 Recursion......Page 170
    4.1.1 The Factorial Function......Page 172
    4.1.2 Drawing an English Ruler......Page 174
    4.1.3 Binary Search......Page 177
    4.1.4 File Systems......Page 179
    4.2 Analyzing Recursive Algorithms......Page 183
    4.3 Recursion Run Amok......Page 187
    4.3.1 Maximum Recursive Depth in Python......Page 190
    4.4.1 Linear Recursion......Page 191
    4.4.2 Binary Recursion......Page 196
    4.4.3 Multiple Recursion......Page 197
    4.5 Designing Recursive Algorithms......Page 199
    4.6 Eliminating Tail Recursion......Page 200
    4.7 Exercises......Page 202
    5 Array-Based Sequences......Page 205
    5.1 Python’s Sequence Types......Page 206
    5.2 Low-Level Arrays......Page 207
    5.2.1 Referential Arrays......Page 209
    5.2.2 Compact Arrays in Python......Page 212
    5.3 Dynamic Arrays and Amortization......Page 214
    5.3.1 Implementing a Dynamic Array......Page 217
    5.3.2 Amortized Analysis of Dynamic Arrays......Page 219
    5.3.3 Python’s List Class......Page 223
    5.4.1 Python’s List and Tuple Classes......Page 224
    5.4.2 Python’s String Class......Page 230
    5.5.1 Storing High Scores for a Game......Page 232
    5.5.2 Sorting a Sequence......Page 236
    5.5.3 Simple Cryptography......Page 238
    5.6 Multidimensional Data Sets......Page 241
    5.7 Exercises......Page 246
    6 Stacks, Queues, and Deques......Page 250
    6.1 Stacks......Page 251
    6.1.1 The Stack Abstract Data Type......Page 252
    6.1.2 Simple Array-Based Stack Implementation......Page 253
    6.1.3 Reversing Data Using a Stack......Page 257
    6.1.4 Matching Parentheses and HTML Tags......Page 258
    6.2 Queues......Page 261
    6.2.1 The Queue Abstract Data Type......Page 262
    6.2.2 Array-Based Queue Implementation......Page 263
    6.3.1 The Deque Abstract Data Type......Page 269
    6.3.2 Implementing a Deque with a Circular Array......Page 270
    6.3.3 Deques in the Python Collections Module......Page 271
    6.4 Exercises......Page 272
    7 Linked Lists......Page 277
    7.1 Singly Linked Lists......Page 278
    7.1.1 Implementing a Stack with a Singly Linked List......Page 283
    7.1.2 Implementing a Queue with a Singly Linked List......Page 286
    7.2 Circularly Linked Lists......Page 288
    7.2.1 Round-Robin Schedulers......Page 289
    7.2.2 Implementing a Queue with a Circularly Linked List......Page 290
    7.3 Doubly Linked Lists......Page 292
    7.3.1 Basic Implementation of a Doubly Linked List......Page 295
    7.3.2 Implementing a Deque with a Doubly Linked List......Page 297
    7.4 The Positional List ADT......Page 299
    7.4.1 The Positional List Abstract Data Type......Page 301
    7.4.2 Doubly Linked List Implementation......Page 303
    7.5 Sorting a Positional List......Page 307
    7.6.1 Using a Sorted List......Page 308
    7.6.2 Using a List with the Move-to-Front Heuristic......Page 311
    7.7 Link-Based vs. Array-Based Sequences......Page 314
    7.8 Exercises......Page 316
    8 Trees......Page 321
    8.1 General Trees......Page 322
    8.1.1 Tree Definitions and Properties......Page 323
    8.1.2 The Tree Abstract Data Type......Page 327
    8.1.3 Computing Depth and Height......Page 330
    8.2 Binary Trees......Page 333
    8.2.1 The Binary Tree Abstract Data Type......Page 335
    8.2.2 Properties of Binary Trees......Page 337
    8.3.1 Linked Structure for Binary Trees......Page 339
    8.3.2 Array-Based Representation of a Binary Tree......Page 347
    8.3.3 Linked Structure for General Trees......Page 349
    8.4.1 Preorder and Postorder Traversals of General Trees......Page 350
    8.4.2 Breadth-First Tree Traversal......Page 352
    8.4.3 Inorder Traversal of a Binary Tree......Page 353
    8.4.4 Implementing Tree Traversals in Python......Page 355
    8.4.5 Applications of Tree Traversals......Page 359
    8.4.6 Euler Tours and the Template Method Pattern......Page 363
    8.5 Case Study: An Expression Tree......Page 370
    8.6 Exercises......Page 374
    9 Priority Queues......Page 384
    9.1.1 Priorities......Page 385
    9.1.2 The Priority Queue ADT......Page 386
    9.2.1 The Composition Design Pattern......Page 387
    9.2.2 Implementation with an Unsorted List......Page 388
    9.2.3 Implementation with a Sorted List......Page 390
    9.3.1 The Heap Data Structure......Page 392
    9.3.2 Implementing a Priority Queue with a Heap......Page 394
    9.3.4 Python Heap Implementation......Page 398
    9.3.5 Analysis of a Heap-Based Priority Queue......Page 401
    9.3.6 Bottom-Up Heap Construction......Page 402
    9.3.7 Python’s heapq Module......Page 406
    9.4 Sorting with a Priority Queue......Page 407
    9.4.1 Selection-Sort and Insertion-Sort......Page 408
    9.4.2 Heap-Sort......Page 410
    9.5.1 Locators......Page 412
    9.5.2 Implementing an Adaptable Priority Queue......Page 413
    9.6 Exercises......Page 417
    10 Maps, Hash Tables, and Skip Lists......Page 423
    10.1 Maps and Dictionaries......Page 424
    10.1.1 The Map ADT......Page 425
    10.1.2 Application: Counting Word Frequencies......Page 427
    10.1.3 Python’s MutableMapping Abstract Base Class......Page 428
    10.1.4 Our MapBase Class......Page 429
    10.1.5 Simple Unsorted Map Implementation......Page 430
    10.2 Hash Tables......Page 432
    10.2.1 Hash Functions......Page 433
    10.2.2 Collision-Handling Schemes......Page 439
    10.2.3 Load Factors, Rehashing, and Efficiency......Page 442
    10.2.4 Python Hash Table Implementation......Page 444
    10.3 Sorted Maps......Page 449
    10.3.1 Sorted Search Tables......Page 450
    10.3.2 Two Applications of Sorted Maps......Page 456
    10.4 Skip Lists......Page 459
    10.4.1 Search and Update Operations in a Skip List......Page 461
    10.4.2 Probabilistic Analysis of Skip Lists......Page 465
    10.5.1 The Set ADT......Page 468
    10.5.2 Python’s MutableSet Abstract Base Class......Page 470
    10.5.3 Implementing Sets, Multisets, and Multimaps......Page 472
    10.6 Exercises......Page 474
    11 Search Trees......Page 481
    11.1 Binary Search Trees......Page 482
    11.1.1 Navigating a Binary Search Tree......Page 483
    11.1.2 Searches......Page 485
    11.1.3 Insertions and Deletions......Page 487
    11.1.4 Python Implementation......Page 490
    11.1.5 Performance of a Binary Search Tree......Page 495
    11.2 Balanced Search Trees......Page 497
    11.2.1 Python Framework for Balancing Search Trees......Page 500
    11.3 AVL Trees......Page 503
    11.3.1 Update Operations......Page 505
    11.3.2 Python Implementation......Page 510
    11.4.1 Splaying......Page 512
    11.4.2 When to Splay......Page 516
    11.4.3 Python Implementation......Page 518
    11.4.4 Amortized Analysis of Splaying......Page 519
    11.5.1 Multiway Search Trees......Page 524
    11.5.2 (2,4)-Tree Operations......Page 527
    11.6 Red-Black Trees......Page 534
    11.6.1 Red-Black Tree Operations......Page 536
    11.6.2 Python Implementation......Page 547
    11.7 Exercises......Page 550
    12 Sorting and Selection......Page 558
    12.1 Why Study Sorting Algorithms?......Page 559
    12.2.1 Divide-and-Conquer......Page 560
    12.2.2 Array-Based Implementation of Merge-Sort......Page 565
    12.2.3 The Running Time of Merge-Sort......Page 566
    12.2.4 Merge-Sort and Recurrence Equations......Page 568
    12.2.5 Alternative Implementations of Merge-Sort......Page 569
    12.3 Quick-Sort......Page 572
    12.3.1 Randomized Quick-Sort......Page 579
    12.3.2 Additional Optimizations for Quick-Sort......Page 581
    12.4.1 Lower Bound for Sorting......Page 584
    12.4.2 Linear-Time Sorting: Bucket-Sort and Radix-Sort......Page 586
    12.5 Comparing Sorting Algorithms......Page 589
    12.6.1 Sorting According to a Key Function......Page 591
    12.7.1 Prune-and-Search......Page 593
    12.7.2 Randomized Quick-Select......Page 594
    12.7.3 Analyzing Randomized Quick-Select......Page 595
    12.8 Exercises......Page 596
    13 Text Processing......Page 603
    13.1 Abundance of Digitized Text......Page 604
    13.1.1 Notations for Strings and the Python str Class......Page 605
    13.2.1 Brute Force......Page 606
    13.2.2 The Boyer-Moore Algorithm......Page 608
    13.2.3 The Knuth-Morris-Pratt Algorithm......Page 612
    13.3.1 Matrix Chain-Product......Page 616
    13.3.2 DNA and Text Sequence Alignment......Page 619
    13.4 Text Compression and the Greedy Method......Page 623
    13.4.1 The Huffman Coding Algorithm......Page 624
    13.4.2 The Greedy Method......Page 625
    13.5.1 Standard Tries......Page 626
    13.5.2 Compressed Tries......Page 630
    13.5.3 Suffix Tries......Page 632
    13.5.4 Search Engine Indexing......Page 634
    13.6 Exercises......Page 635
    14 Graph Algorithms......Page 641
    14.1 Graphs......Page 642
    14.1.1 The Graph ADT......Page 648
    14.2 Data Structures for Graphs......Page 649
    14.2.1 Edge List Structure......Page 650
    14.2.2 Adjacency List Structure......Page 652
    14.2.3 Adjacency Map Structure......Page 654
    14.2.4 Adjacency Matrix Structure......Page 655
    14.2.5 Python Implementation......Page 656
    14.3 Graph Traversals......Page 660
    14.3.1 Depth-First Search......Page 661
    14.3.2 DFS Implementation and Extensions......Page 666
    14.3.3 Breadth-First Search......Page 670
    14.4 Transitive Closure......Page 673
    14.5.1 Topological Ordering......Page 677
    14.6.1 Weighted Graphs......Page 681
    14.6.2 Dijkstra’s Algorithm......Page 683
    14.7 Minimum Spanning Trees......Page 692
    14.7.1 Prim-Jarník Algorithm......Page 694
    14.7.2 Kruskal’s Algorithm......Page 698
    14.7.3 Disjoint Partitions and Union-Find Structures......Page 703
    14.8 Exercises......Page 708
    15 Memory Management and B-Trees......Page 719
    15.1 Memory Management......Page 720
    15.1.1 Memory Allocation......Page 721
    15.1.2 Garbage Collection......Page 722
    15.1.3 Additional Memory Used by the Python Interpreter......Page 725
    15.2.1 Memory Systems......Page 727
    15.2.2 Caching Strategies......Page 728
    15.3 External Searching and B-Trees......Page 733
    15.3.1 (a,b) Trees......Page 734
    15.3.2 B-Trees......Page 736
    15.4 External-Memory Sorting......Page 737
    15.4.1 Multiway Merging......Page 738
    15.5 Exercises......Page 739
    A Character Strings in Python......Page 743
    B Useful Mathematical Facts......Page 747
    Bibliography......Page 754
    Index......Page 759

    电子书下载地址回复可见:
    游客,如果您要查看本帖隐藏内容请回复

    每天进步一点点
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-9-2 09:04
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    0

    主题

    21

    帖子

    21

    积分

    小学生

    Rank: 1

    金币
    106
    发表于 2019-8-8 08:39:41 | 显示全部楼层
    学习了,谢谢
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2019-4-13 14:30
  • 签到天数: 38 天

    [LV.5]常住居民I

    0

    主题

    591

    帖子

    591

    积分

    VIP学者

    Rank: 5Rank: 5

    金币
    8119
    发表于 2019-10-17 10:00:19 | 显示全部楼层
    每天进步一点点
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 13:58
  • 签到天数: 304 天

    [LV.8]以坛为家I

    1

    主题

    456

    帖子

    458

    积分

    VIP学者

    Rank: 5Rank: 5

    金币
    11654
    发表于 2019-10-22 21:13:28 | 显示全部楼层
    感谢分享
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    3 小时前
  • 签到天数: 64 天

    [LV.6]常住居民II

    1

    主题

    71

    帖子

    73

    积分

    初中生

    Rank: 2

    金币
    522
    发表于 2019-10-31 08:08:57 | 显示全部楼层
    Data Structures and Algorithms in Python-[1]-[2013]-
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    3 小时前
  • 签到天数: 64 天

    [LV.6]常住居民II

    1

    主题

    71

    帖子

    73

    积分

    初中生

    Rank: 2

    金币
    522
    发表于 2019-10-31 08:09:47 | 显示全部楼层
    Data Structures and Algorithms in Python-[1]-[2013]-
    回复

    使用道具 举报

  • TA的每日心情
    难过
    昨天 17:54
  • 签到天数: 56 天

    [LV.5]常住居民I

    0

    主题

    57

    帖子

    57

    积分

    初中生

    Rank: 2

    金币
    428
    关注领域
    农学
    QQ
    发表于 2019-11-6 10:24:24 | 显示全部楼层
    Data Structures and Algorithms in Python-[1]-[2013]-
    回复

    使用道具 举报

  • TA的每日心情
    开心
    前天 10:18
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    12

    帖子

    12

    积分

    VIP学者

    Rank: 5Rank: 5

    金币
    99974
    发表于 2019-12-2 13:45:00 | 显示全部楼层
    感谢分享
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    QQ|Archiver|手机版|小黑屋|科研帝   

    GMT+8, 2019-12-11 16:04 , Processed in 0.181441 second(s), 28 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表