jwasham/practice-c logo

jwasham/practice-c

Free

Part of my daily plan for studying C.

FreeFree tier
Type
Open Source

About jwasham/practice-c

A collection of C programming practice exercises created as part of a structured daily study plan. The repository covers fundamental data structures and algorithms, including arrays, binary search trees, linked lists, graphs, hash tables, splay trees, sorting algorithms (merge sort, quick sort), bit manipulation, queues, priority queues, and assembly experiments. The code is intended for learning and interview preparation, with a disclaimer that it may contain bugs.

Key Features

C programming practice exercises
Data structures: arrays, linked lists, binary search trees, hash tables, graphs, splay trees
Algorithms: binary search, merge sort, quick sort
Bit manipulation exercises
Queue and priority queue implementations (array and linked list based)
Assembly experiments
Interview preparation focus
Open source and free to use

Pros & Cons

Pros
  • Covers a wide range of fundamental data structures and algorithms in C
  • Free and open source under an MIT-like license (GitHub default)
  • Part of a structured daily study plan for consistent practice
  • Includes both simple and complex topics (e.g., splay trees, bit manipulation)
Cons
  • Code may be buggy or incomplete as noted by the author
  • Limited documentation beyond folder names and file contents
  • No active maintenance or updates indicated
  • Not intended for production use

Best For

Learning and practicing C programmingStudying data structures and algorithmsPreparing for coding interviewsExploring low-level programming concepts

FAQ

What is this project?
It is a repository of C programming practice exercises created by John Washam as part of his daily study plan for learning C.
Is the code production-ready?
No. The README states the code may be terrible and buggy, and warns users to use it at their own risk.
What topics are covered?
Topics include arrays, binary search, binary search trees, bit manipulation, graphs, hash tables, linked lists, merge sort, priority queues, queues, quick sort, splay trees, and assembly experiments.
Can I contribute to the project?
The repository is public on GitHub and forks are available, so contributions are possible via pull requests.