Skip to content

Latest commit

 

History

History
117 lines (81 loc) · 5.13 KB

README.md

File metadata and controls

117 lines (81 loc) · 5.13 KB

Java Data Structures Package 🚀

Welcome to my Java Data Structures Package! This package provides a collection of essential data structures and utility classes for common operations.

All the classes have generic support, proper Exception handling with good javaDoc, comments and readability.

Table of Contents

  1. Array

  2. Linked List

  3. Queue

  4. Stack

  5. Trees

    📦 Data Structures

    1. Queue

    • Description: Implementation of a generic queue with common operations.
    • Features: Enqueue, dequeue, front, rear, and more.
    • Usage: Queue<Integer> queue = new Queue<>();
    • Types: Dequeue<String> or CircularQueue<Integer>

    2. Stack

    • Description: A stack implementation supporting push, pop, peek, and more.
    • Features: Dynamic resizing, generic support.
    • Usage: Stack<String> stack = new Stack<>();
    • Types: StackLL<String> or StackArray<Integer>

    3. Linked List

    • Description: Generic linked list with insert, delete, reverse, copy and search functionalities.
    • Features: Singly, double and circualr linked list.
    • Usage: LinkedList<Double> list = new LinkedList<>();
    • Types: SingleLinkedList<String> or SingleCircularLinkedList<Integer> or replace(Single, Double).

    4. Notation Converter Utility

    • Description: Utility class for converting infix, postfix, and prefix notations.
    • Features: Supports various types of expressions.
    • Path: javaDSA\dsa\stack\NotationConverter
    • Usage: NotationConverter.postfix(Expression, ExpressionType(enum - prefix, postfix or infix));
    • Types: postfix(expression, infix/prefix) or prefix(expression, infix/postfix) or infix(expression, prefix/postfix)

    5. Binary Trees

    • Description The binaryTrees sub-repository contains the implementation of generic binary trees with various functionalities.

    • Features : Basic binary tree structure with a TreeNode class. Generic BinaryTree class supporting common tree operations. Designed for flexibility and easy extension.

    • Usage Example

    BinaryTree<Integer> tree = new BinaryTree<>();
    TreeNode<Integer> root = new TreeNode<>(5);
    tree.setRoot(root);
    // Perform tree operations...

    6. Expression Tree

    • Description The ExpressionTree class in the applications sub-repository serves as a utility for constructing and manipulating expression trees.

    • Features :

      • ExpressionTree extends BinaryTree<Character> to represent expression trees.
      • Construction from postfix expressions: ExpressionTree(String postfixExpression).
    • Usage Example

    ExpressionTree expressionTree = new ExpressionTree("ab+");
    // Perform expression tree operations...

    🚀 Getting Started

    1. Clone the repository: git clone https://github.com/Vasudevshetty/javaDSA.git
    2. Include the JAR file in your Java project.
    3. Explore and integrate the data structures into your application.

    🌟 Contribution

    Feel free to contribute to this project by submitting bug reports, feature requests, or pull requests. If you like this please put up a star and motivate me. 😍

    Happy coding! 🚀