Skip to the content.

πŸŽ“ Data Structures Mini-Project (C Language)

GitHub Pages Badge License Badge Workshop Badge AI Alchemy Hub Badge

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

  1. Stack CRUD
    • Stack of student records (Name, Section, USN, Grade)
    • Supports Create, Read, Update, Delete operations
  2. Expression Conversion
    • Infix β†’ Postfix
    • Postfix β†’ Infix
    • Uses stack-based parsing
  3. 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


πŸ‘¨β€πŸ« Curated By

Satya Prakash Nigam
Architecting modular, industry-ready learning experiences
Website: aialchemyhub.in