/DSA

C implementations of various common data structures and algorithms

Primary LanguageC

This repository contains C implementations of various common data structures and algorithms.

Data Structures

  • Stack: LIFO (last in, first out) data structure.
  • Queue: FIFO (first in, first out) data structure.
  • Linked List: A dynamic data structure consisting of nodes linked together.
  • Binary Search Tree: A binary tree where the value of each node is greater than or equal to any value in its left subtree and less than or equal to any value in its right subtree.

Algorithms

  • Ackermann Function: A recursive function that is not primitive recursive.
  • Bubble Sort: A simple sorting algorithm that repeatedly steps through the list, compares adjacent elements and swaps them if they are in the wrong order.
  • Prefix Notation: A way of writing arithmetic expressions without the use of parentheses. Operators appear before their operands.
  • Infix to Postfix Conversion: A process that converts an infix notation (normal human-readable notation) to postfix notation (also known as Reverse Polish Notation).

Getting Started

To get started, clone this repository to your local machine and open it in your preferred IDE or text editor. The implementations are located in the src folder, organized by data structure or algorithm. The header files can be found in the include folder. Each implementation is accompanied by a test file in the test folder, which can be run using a testing framework like CUnit.

Contributing

Contributions to this repository are welcome. If you notice a bug or would like to add an implementation, please open a pull request with your changes.

License

This repository is licensed under the MIT license. See LICENSE for more information.