π Data Structures Mini-Project (C Language)
This repository is part of the Git & GitHub workshop curated by Satya Prakash Nigam for learners exploring modular C programming and version control. It is designed to help students and contributors apply Data Structures in real-world coding workflows using Git.
π¦ Project Structure
learn-git/
βββ src/ # C source files for each module
βββ include/ # Header files (.h) with function prototypes
βββ tests/ # Test drivers for each module
βββ data/ # Sample input files (e.g., students.txt)
βββ docs/ # Problem statements and module descriptions
βββ Makefile # Build automation
βββ LICENSE # Open-source license declaration
βββ README.md # Project overview and usage instructions
βββ CONTRIBUTING.md # Guidelines for student and community contributions
βββ GIT_WORKFLOW.md # Step-by-step Git instructions for beginners
βββ git-cheat-sheet-for-you.md # Git command reference and ASCII flow diagram
βββ git-github-workshop.md # Slide deck content for Git & GitHub workshop
βββ git-installation-configuration-guide.md # Platform-specific Git setup instructions
βββ setup-ds-project.sh # Bash script to scaffold project folders
βββ .gitignore # Git hygiene and ignored artifacts
π§ Modules
- Stack CRUD
- Stack of student records (Name, Section, USN, Grade)
- Supports Create, Read, Update, Delete operations
- Expression Conversion
- Infix β Postfix
- Postfix β Infix
- Uses stack-based parsing
- Tower of Hanoi
- Recursive solution
- Visual trace of disk movements
π§ͺ Testing
Each module has a corresponding test file in the tests/ folder.
Learners are encouraged to follow a Test-Driven Development (TDD) approach.
To compile and run tests:
make
./stack
./expr
./hanoi
To clean compiled binaries:
make clean
π§° Git Workflow
If youβre new to Git and want to personalize this project and push it to your own GitHub account, follow the step-by-step guide in GIT_WORKFLOW.md.
For a quick reference of essential Git commands and visual flow, check out the git-cheat-sheet-for-you.md.
To set up Git on your system (Windows, Linux, macOS), follow the platform-specific instructions in git-installation-configuration-guide.md.
π€ Want to Contribute?
Check out CONTRIBUTING.md for ideas and instructions on how to contribute meaningfully to this project.
π Learning Goals
- Apply DS concepts in modular C programs
- Understand Git versioning and collaboration
- Practice clean coding and documentation habits
- Embrace testing and traceability
- Learn how to fork, personalize, and push your own version of a project
π¨βπ« Curated By
Satya Prakash Nigam
Architecting modular, industry-ready learning experiences
Website: aialchemyhub.in