https://github.com/praisetompane/data_structures
Reimplementation of foundational data structures at a lower level of the stack.
https://github.com/praisetompane/data_structures
data-structures
Last synced: 12 months ago
JSON representation
Reimplementation of foundational data structures at a lower level of the stack.
- Host: GitHub
- URL: https://github.com/praisetompane/data_structures
- Owner: praisetompane
- License: mit
- Created: 2024-12-19T20:18:10.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-13T19:59:39.000Z (about 1 year ago)
- Last Synced: 2025-03-13T20:37:15.775Z (about 1 year ago)
- Topics: data-structures
- Language: C
- Homepage:
- Size: 21.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# data_structures

## Objectives
- Reimplementation of foundational data structures at a lower level of the stack.
- Educational project to aquire a deeper understanding of these constructs.
## [Theory](https://github.com/praisetompane/computation_and_information/tree/main/0_theory_of_computation/4_design_and_analysis_of_algorithms/0_data_structures_design_and_analysis)
## Project Structure
- docs: project documentation lives in here.
- each data structure is an independent module.
- example:
- [array](./array/array.h)
- [linkedlist](./linkedlist/linkedlist.h)
- ...
## Dependencies
- [Docker](https://docs.docker.com/get-started/)
## Setup Instructions
- The repository is configured to use [devcontainers](https://containers.dev) for development.
- [Developing inside a Container](https://code.visualstudio.com/docs/devcontainers/containers)
## Installation
#### Clone Repository
```shell
git clone git@github.com:praisetompane/data_structures.git
```
#### Build
```shell
make build
```
#### Test
```shell
make test
```
#### Execute Installation Script
```
sudo make install
```
## Uninstall
```
sudo make uninstall
```
## Usage
```C
#include "array.h"
#include
#include
int main()
{
printf("Test creating, adding and reading from Integer array\n");
array numbers = new (INT, 10);
assert(numbers.length == 0);
int number = 2;
add(&numbers, 0, &number);
int read_int;
read(&numbers, 0, &read_int);
assert(read_int == number);
printf("\n");
}
```
## Git Conventions
- **NB:** the master is locked and all changes must come through a Pull Request.
- commit messages:
- provide concise commit messages that describe what you have done.
```shell
# example:
git commit -m "feat(core): algorithm" -m"implement my new shiny faster algorithm"
```
- screen shot of Githb view
- references:
- https://www.conventionalcommits.org/en/v1.0.0/
- https://www.freecodecamp.org/news/how-to-write-better-git-commit-messages/