关于数据结构与算法讲解的书籍很多,但是用python语言去实现的不是很多,最近有幸看到一本这样的书籍,由Brad Miller and David
Ranum编写的《Problem Solving with Algorithms and Data Structures Using
Python》,地址为:http://interactivepython.org/runestone/static/pythonds/index.html是英文的,写的不错,里面代码的实现也很详细,很多有趣的例子,于是想把它翻译成中文,方便大家的阅读,也可以再温习一下这本书。后续博客会陆续更新这本书的翻译内容,本篇先把要写的所有的内容框架写下来,以便大家有个整体的认识。
========================================================正式内容开始分隔线
用Python讲解数据结构与算法
(Problem Solving with Algorithms and Data
Structures Using Python)
一、简介(Introduction)
1.学习目标(Objectives)
2.开始学习(Getting
Started)
3.什么是计算机科学(What is
Computer Science)
4.Python基本知识回顾(Review of Basic Python)
5.总结(Summary)
6.关键术语(Key
Terms)
7.问题讨论(Discussion
Questions)
8.习题练习(Programming
Exercises)
二、算法分析(Analysis)
1.学习目标(Objectives)
2.什么是算法分析(What is
Algorithm Analysis)
3.Python内置数据结构性能分析(Performance of Python Data
Structures)
4.总结(Summary)
5.关键术语(Key
Terms)
6.问题讨论(Discussion
Questions)
7.习题练习(Programming
Exercises)
三、基本数据结构(Basic Data
Structures)
1.学习目标(Objectives)
2.什么是线性数据结构(What
Are Linear Structures)
3.栈(Stacks)
4.队列(Queues)
5.双端队列(Deques)
6.列表(Lists)
7.总结(Summary)
8.关键术语(Key
Terms)
9.问题讨论(Discussion
Questions)
10.习题练习(Programming
Exercises)
四、递归(Recursion)
1.学习目标(Objectives)
2.什么是递归(What is
Recursion)
3.栈帧实现递归(Stack
Frames:Implementing Recursion)
4.可视化递归(Visualizing
Recursion)
5.复杂递归问题(Complex
Recursive Problems)
6.迷宫问题(Exploring a
Maze)
7.动态规划(Dynamic
Programming)
8.总结(Summary)
9.关键术语(Key
Terms)
10.问题讨论(Discussion
Questions)
11.习题练习(Programming
Exercises)
五、排序与检索(Sorting and
Searching)
1.学习目标(Objectives)
2.检索(Searching)
3.各种排序算法(Sorting)
4.总结(Summary)
5.关键术语(Key
Terms)
6.问题讨论(Discussion
Questions)
7.习题练习(Programming
Exercises)
六、树与树相关的算法(Trees and Tree
Algorithms)
1.学习目标(Objectives)
2.树相关实例(Examples of
Trees)
3.树相关术语与定义(Vocabulary and Definitions)
4.实现树结构(Implementation)
5.二叉树(Binary Tree
Aplications)
6.堆与优先队列(Priority
Queues with Binary Heaps)
7.二叉搜索树(Binary
Search Trees)
8.平衡二叉搜索树(Balanced
Binary Search Trees)
9.总结(Summary)
10.关键术语(Key
Terms)
11.问题讨论(Discussion
Questions)
12.习题练习(Programming
Exercises)
七、图与图相关的算法(Graphs and Graph
Algorithms)
1.学习目标(Objectives)
2.图相关术语与定义(Vocabulary and Definitions)
3.图抽象数据结构(The Graph
Abstract Data Type)
4.广度优先搜索(Breadth
First Search)
5.深度优先搜索(Depth
First Search)
6.拓扑排序(Topological
Sorting)
7.强连通分量(Strongly
Connected Components)
8.最短路径问题(Shortest
Path Problems)
9.总结(Summary)
10.关键术语(Key
Terms)
11.问题讨论(Discussion
Questions)
12.习题练习(Programming
Exercises)