Skip to main content

📌 easydsi 2.0.1

🚀 easydsi is a Python library designed to simplify Data Structures and Algorithms (DSA), allowing users to focus on coding without worrying about implementation details.


📂 Features

  • Heap
    • MinHeap()
    • MaxHeap()
  • Queue
  • Stack
  • Tree
    • BinaryTree()
    • BinarySearchTree()

📦 Heap

🛠️ Initialization

  • MinHeap() or MinHeap([list]) - Creates a MinHeap.
  • MaxHeap() or MaxHeap([list]) - Creates a MaxHeap.
  • Heap(data=None, max_heap=False) - Creates a generic heap that can be a MinHeap or MaxHeap.

This module provides utility functions for performing various operations on a Heap object, including retrieving statistics, sorting, merging, and clearing the heap.

📌 Methods and Descriptions

  • heapify_list(data, max_heap=False)
    Converts a list into a MinHeap or MaxHeap.

  • merge_heaps(heap1, heap2, max_heap=False)
    Merges two heaps into a new MinHeap or MaxHeap.

  • is_heap_sorted(heap, max_heap=False)
    Checks if a given heap is sorted.

  • get_top_n(heap, n=1)
    Retrieves the top n elements from a MinHeap or MaxHeap.

  • heap_sort(data, descending=False)
    Sorts a list using Heap Sort.

  • contains(heap, element)
    Checks if an element exists in the heap.

  • clear_heap(heap)
    Removes all elements from the heap.

  • size(heap)
    Returns the number of elements in the heap.

  • sum_heap(heap)
    Computes the sum of all elements in the heap.

  • max_in_heap(heap)
    Returns the maximum element in the heap.

  • min_in_heap(heap)
    Returns the minimum element in the heap.


📦 Stack

🛠️ Initialization

  • Stack() - Creates a stack.

📌 Methods and Descriptions

  • reverse_stack()
    Reverses the order of elements in a stack.

  • sort_stack()
    Sorts a stack in ascending order.

  • duplicate_stack()
    Creates a duplicate of a stack without modifying the original.

  • sum_stack()
    Computes the sum of all elements in a stack.

  • max_in_stack()
    Finds the maximum value in a stack.

  • min_in_stack()
    Finds the minimum value in a stack.

  • merge_stacks()
    Merges two stacks into one, maintaining order.

  • is_balanced()
    Checks if a given expression has balanced parentheses.

  • remove_duplicates()
    Removes duplicate elements from a stack while maintaining order.


📦 Queue

🛠️ Initialization

  • Queue() or Queue([list]) - Creates a queue.

This module provides utility functions for performing various operations on a Queue object, including retrieving statistics, sorting, reversing, and clearing the queue.

📌 Methods and Descriptions

  • get_max(queue, visualize=False)
    Returns the maximum numerical value in the queue.

  • get_min(queue, visualize=False)
    Returns the minimum numerical value in the queue.

  • get_sum(queue, visualize=False)
    Computes the sum of all numerical values in the queue.

  • get_avg(queue, visualize=False)
    Computes the average of all numerical elements in the queue.

  • reverse_queue(queue, inplace=False, visualize=False)
    Reverses the order of elements in the queue.

  • sort_queue(queue, descending=False, inplace=False, visualize=False)
    Sorts the queue in ascending order by default. Use descending=True for descending order.

  • clear_queue(queue, visualize=False)
    Removes all elements from the queue.

  • contains(queue, item, visualize=False)
    Checks if a specific item exists in the queue.


🌳 Tree

🛠️ Initialization

  • BinaryTree() or BinaryTree(root_value) - Creates a Binary Tree with an optional root value.
  • BinarySearchTree() or BinarySearchTree(root_value) - Creates a Binary Search Tree with an optional root value.

This module provides utility functions for performing various operations on a Tree object, including retrieving statistics, searching, traversing, and modifying the tree.

📌 Methods and Descriptions

  • contains(tree, value)
    Checks if a tree contains a specific value.

  • sum_tree(tree)
    Returns the sum of all elements in the tree.

  • max_in_tree(tree)
    Returns the maximum value in the tree.

  • min_in_tree(tree)
    Returns the minimum value in the tree.

  • count_nodes(tree)
    Returns the total number of nodes in the tree.

  • count_leaves(tree)
    Returns the number of leaf nodes in the tree.

  • get_height(tree)
    Returns the height of the tree.

  • inorder(tree)
    Returns the in-order traversal of the tree (Left, Root, Right).

  • preorder(tree)
    Returns the pre-order traversal of the tree (Root, Left, Right).

  • postorder(tree)
    Returns the post-order traversal of the tree (Left, Right, Root).

  • levelorder(tree)
    Returns the level-order traversal of the tree (Breadth-First Traversal).


📥 Installation

Run the following command to install:

pip install easydsi

🚀 Quick Start

Import the library into your project:

from easydsi.tree.binary_tree import BinaryTree, BinarySearchTree
from easydsi.tree.tree_utils import max_in_tree, sum_tree

🎯 Working with Tree

🔹 Initialize a tree

bt = BinaryTree([3, 5, 1, 7, 2])
print(bt)

Output:

    __3
   /   \
  5     1
 / \
7   2

🔹 Get maximum value in Binary Search Tree

bst = BinarySearchTree([10, 5, 15, 2, 7])
print(max_in_tree(bst))

Output:

15

🔹 Get all elements after adding 6

bt.add(6)
print(bt.get_elements())

Output:

[3, 5, 1, 7, 2, 6]

📊 Statistics

PyPI Downloads

Hits

Metadata

Release files for easydsi 2.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for easydsi 2.0.1
File Size Uploaded
easydsi-2.0.1.tar.gz 17.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for easydsi 2.0.1
File Interpreter ABI Platform
easydsi-2.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 33.9 kB

Release files / easydsi-2.0.1.tar.gz

Download URL easydsi-2.0.1.tar.gz
Size 17.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3bb9b1eaa22d1a874bac879dbe16195a0aff42b8e0e098449230519714f384a0
BLAKE2b-256 checksum
How to use checksums
2adc21e61206a46b3ca1aee0b300f65adde610cc08442e0a1f3daa206ebe5932
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.6

Release files / easydsi-2.0.1-py3-none-any.whl

Download URL easydsi-2.0.1-py3-none-any.whl
Size 16.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b244e36f6d44f88c2c5205b7875f260383a7b517e5c05228725c6cd513c9b218
BLAKE2b-256 checksum
How to use checksums
d2b5001b09f303927be0c6bb09e71a388675774775d99e5db9975d8c14b14931
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.6

Release history Release notifications | RSS feed

This release

2.0.1 This release

2 release files

2.0.0

2 release files

1.2.1

1 release file

1.2.0

1 release file

1.1.9

1 release file

1.1.8

1 release file

1.1.7

1 release file

1.1.6

1 release file

1.1.5

1 release file

1.1.4

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.0.9

1 release file

1.0.8

1 release file

1.0.7

1 release file

1.0.6

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.0.9

2 release files

0.0.8

1 release file

0.0.6

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page