Skip to content

This repository contains Jupyter notebook exercises covering a wide range of topics in both data structures and search algorithms.

Notifications You must be signed in to change notification settings

mrlibelula/python-algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Structures and Algorithms in Python

Welcome to my repository for learning and practicing data structures and algorithms in Python. This repository contains Jupyter notebook exercises covering a wide range of topics in both data structures and search algorithms. Whether you are a beginner looking to strengthen your foundation or an experienced developer aiming to refine your skills, these exercises are designed to cater to various skill levels.

Table of Contents

  1. Data Structures

  2. Search Algorithms

Data Structures

Arrays

  • Array Creation and Manipulation
  • Finding the Maximum and Minimum Elements
  • Searching in an Array
  • Sorting Algorithms (e.g., Bubble Sort, Quick Sort)

Linked Lists

  • Singly Linked Lists
  • Doubly Linked Lists
  • Circular Linked Lists
  • Operations on Linked Lists (Insertion, Deletion, Traversal)

Stacks

  • Stack Implementation
  • Stack Operations (Push, Pop)
  • Applications of Stacks (e.g., Expression Evaluation)

Queues

  • Queue Implementation (Array and Linked List)
  • Queue Operations (Enqueue, Dequeue)
  • Applications of Queues (e.g., BFS)

Trees

  • Binary Trees
  • Binary Search Trees (BST)
  • Tree Traversal (Inorder, Preorder, Postorder)
  • Balancing Trees (AVL, Red-Black)

Graphs

  • Graph Representation (Adjacency List, Adjacency Matrix)
  • Depth-First Search (DFS) Implementation
  • Breadth-First Search (BFS) Implementation

Hash Tables

  • Hash Function Implementation
  • Collision Resolution Strategies (Chaining, Open Addressing)
  • Hash Table Operations (Insertion, Deletion, Search)

Search Algorithms

Linear Search

  • Linear Search Implementation
  • Time Complexity Analysis

Binary Search

  • Binary Search Implementation
  • Time Complexity Analysis

Depth-First Search (DFS)

  • DFS on Graphs
  • Applications of DFS

Breadth-First Search (BFS)

  • BFS on Graphs
  • Applications of BFS

Getting Started

To get started, clone this repository and open the Jupyter notebooks in the notebooks directory. Each notebook corresponds to a specific topic, and the exercises are designed to guide you through the implementation and understanding of various data structures and algorithms.

Feel free to explore, learn, and contribute. Happy coding!

libe.dev

About

This repository contains Jupyter notebook exercises covering a wide range of topics in both data structures and search algorithms.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published