Data Structures and Algorithms for Python# Contents# Getting Started Data Structure Abstract Data Type(抽象数据类型ADT) Data Structure (数据结构) 常用的数据结构 Algorithms and Complexities Algorithm The criteria of an algorithm Analysis of algorithms Complexities of an Algorithm 常用算法 Big O notation Types of Big O Notations 常用算法的Big O BIG O and Python Data Structures - Array What is Array Array(数组) 一维和多维数组 数组优势 数组的缺点 Operations 1. Adding item (添加元素) 2. Deleting Item(删除元素) Arrays in Python & C++ Creating a list C++ 例子 Reversing an Array 相关练习 Dutch National Flag Problem Trapping Rain Water Problem Anagram Problem Data Structures - Linked List Linked Lists 单向链表 双向链表 Operations Linked Lists Advantages Linked Lists Disadvantages Linked List vs Array Linked List in Python Singly Linked List Doubly Linked List Leetcode Practise Reverse Linked List Middle of the Linked List Palindrome Linked List Reverse Linked List II Data Structures - Stacks & Queues Stacks operations Queues Queue的操作 Practise Implement Stack using Queues Implement Queue using Stacks Min Stack Recursion Introduction LeetCode 练习 Data Structures - Tree Introduction 高度深度和层 Binary Search Tree Binary Tree (二叉树) Binary Search Tree (二叉搜索树) Binary Search Tree Python实现 LeetCode 练习 Search in a Binary Search Tree Data Structures - Graphs Introduction 相关术语 图的表示 Adjacency Matrix Adjacency List BIG O 分析 用Python实现一个Graph Tree Traversal - 树的遍历 Tree Traversal 树的遍历 深度优先搜索 Depth-first search 广度优先搜索 Breadth-first search Breadth First Search的实现 Depth First Search的实现 LeetCode 练习 Validate Binary Search Tree Graph Traversal - 图的遍历 图的遍历 BFS Python DFS Python Basic Sort - 基本排序 Bubble Sort 冒泡排序 Select Sort Insert Sort Merge Sort - 归并排序 Merge Sort Quick Sort - 快排 Quick Sort 快排