# Advanced Data Structures with Python

This repository contains Data structures, Algorithms and their common usecases implemented by me in python. This repository is really helpful for those, who prefer to do competitive programming in python.

## Contents:

Click on "Code" to see code of that data structure or algorithm, and click on "Learn" to read markdown.

### Algorithms-

• Dijkstra's Shortest Path Algorithm (Java + Python) Code
• Kahn's Algorithm for Topological Sort Code Learn
• Depth First Search Code
• Floyd Warshall Algorithm Code Learn
• Longest Common Subsequence (Java) Code
• Longest Common Substring (Java) Code

### Data Structures-

• Trie Data Structure Code Learn
• Segment Tree (For sum) (Java + Python) Code
• Union Find Data Structures (Disjoint Set Data Structure) Code Learn
• Binary Search Tree Code

## Learning Python ( the pythonic way)

Lambdas

``lambda arguments : expression``

List Comprehensions

``number_list = [ x for x in range(20) if x % 2 == 0]``

Class

``````class Person:
def __init__(self, name, age):
self.name = name
self.age = age

p1 = Person("John", 36)

print(p1.name)
print(p1.age)``````

Map

``map(function_object, iterable1, iterable2,...)``

filter

``filter(function_object, iterable)``

## Python Tricks

Input Space Separated Integers as List

``numbers = list(map(int, input().split()))``

## Resources to Learn Python

Books, Videos and Lecture Notes available in are available here - Learning Resources

### Some Other Resources

• Real Python
• Python Jumpstart by Building 10 Apps
• Learn Python the Hard Way
• Code School: Learn Python
• Python for Entrepreneurs
• Intro to Python for Data Science
• Automate the Boring Stuff with Python
• Learn Python, it's Cake
• BONUS: Practical Python and OpenCV

## Contributing

This repository is open to contribution. Contributors are mentioned here:

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us. 