**What is data structure?**

It is the collection of data and it is a way to organize data in a computer and can be used in a different way.

**What is python?**

Python is a high level programming language and is easy to understand. It syntax can be understand easily as compare to other languages.

Download data structures and algorithms with python. These notes are very easy to understand and provide much information to its users. Through these notes you can learn how to handle a data by different steps and give you idea about algorithm which helps you in writing your own programs. These notes will give you the tool to determine that how efficient an algorithm is which helps you to in making judgments about any of the programme you write. In these notes, the start of every chapter contains the goals and in the end review questions about the reinforcement of the goals are stated. There are a lot of examples also stated for the better understanding of the reader. You can easily download these notes without any cost.

**You Cover Following Topics From This Notes:**

**Python programming 101**- Creating objects
- Operator overloading
- The main function
- Polymorphism
- XML files

**Computational complexity**- Computer architecture
- Big-oh notation
- The PyList Append operation
- Amortized complexity

**Recursion**- Scope
- The Run-Time Stack and the Heap
- Recursion in computer graphics
- Using type reflection

**Sequences**- Cloning objects
- Item ordering
- Quicksort
- Stacks and Queues

**Sets and Maps**- Playing Sudoku
- Hashing
- Maps
- Memorization

**Trees**- Abstract Syntax trees and expressions
- Prefix and Postfix expressions
- Binary search trees
- Search spaces

**Graphs**- Graph notation
- Kruskal’s algorithm
- Dijkstra’s algorithm
- Graph representations

**Membership structures**- Bloom filters
- The trie datatype

**Heaps**- Key ideas
- Building a heap
- Analysis of version 1 phase 1
- Analysis of phase 2
- Comparison to other sorting algorithms

**Balanced binary search trees**- AVL trees
- Splay trees
- Recursive splaying
- Performance analysis

**B-trees**- Relational database
- B-tree organization
- B-tree insert
- B-tree delete

**Heuristic search**- Depth first search
- Breadth first search
- Hill climbing
- A* search