Dijkstra’s Algorithm in C – Shortest Path with Step-by-Step Trace

Dijkstra’s algorithm finds the shortest path from one source vertex to all other vertices in a weighted graph with non-negative edge weights. It is a greedy algorithm: at each step it picks the unvisited vertex with the smallest known distance, marks it done, and relaxes its neighbours — updating any neighbour’s distance if a shorter …

0-1 Knapsack Problem in C – DP Solution with Table Trace

The 0-1 knapsack problem asks: given a set of items each with a weight and a value, and a knapsack with a maximum weight capacity, which items should you pack to maximize the total value? Each item can be taken once (0-1) — you cannot take a fraction. This is a classic dynamic programming problem …

Binary To Decimal in C

C Program to convert a binary number into its equivalent Decimal. In binary number system or base-2 system numeric valuer are represented by using two different symbols 0 and 1. The binary number system is a positional notation with a radix of 2. Read more here: What are binary, octal, and hexadecimal notation? This program converts …

Count Characters, Words, and Lines in a File in C

Counting the characters in a file is the “hello world” of C file handling — but done properly it teaches four things at once: the fgetc() read loop, why ch must be an int and not a char, the <ctype.h> classification functions, and word counting with a state flag. This version is a miniature wc: …

GCD and LCM Using Recursion in C – Euclidean Algorithm

This C program finds GCD and LCM using recursion with the Euclidean algorithm. The GCD (Greatest Common Divisor) is the largest number that divides both inputs with no remainder. The LCM (Least Common Multiple) is the smallest number divisible by both. Once the GCD is known, the LCM follows from a simple identity: GCD(a, b) …

Fibonacci Series in C – Iterative, Recursive, and Array Methods

The Fibonacci series in C is a sequence where each number is the sum of the two preceding ones, starting from 0 and 1: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, … This page covers three approaches — iterative series printing, a recursive function, and a side-by-side comparison of their time and …