Stack Implementation in C – Array Based with PUSH, POP, PEEK

Stack implementation in C uses an array with a top pointer that tracks the current topmost element. A stack is a LIFO (Last In, First Out) data structure — the last element pushed is the first one popped. It supports three core operations: PUSH (insert), POP (remove), and PEEK (view without removing). Stacks are used …

Singly Linked List in C – Insert, Delete, Search, and Traverse

A linked list in C is a data structure where each element (called a node) stores a value and a pointer to the next node. Unlike an array, nodes are scattered in memory — the pointers chain them together into a sequence. This makes insertion and deletion at any position O(1) once you have a …

C program to find the size of a union.

A union in C is similar to a structure, but all its members share the same memory location. While a struct allocates separate space for each member, a union allocates space equal to its largest member, and every member overlaps that same block of memory. Only one member holds a valid value at any point …

C Program to Sort Matrix Rows Ascending and Columns Descending

Given an M×N matrix, this program produces two independently sorted versions: Rows sorted ascending — within each row, elements are rearranged smallest to largest. Rows are independent of each other. Columns sorted descending — within each column, elements are rearranged largest to smallest (operating on the original matrix, not the row-sorted one). Columns are independent …

Sum of Digits of a Number in C – Loop and Recursion

Finding the sum of digits of a number in C is a classic programming exercise that teaches digit extraction using the modulo operator. You extract each digit by taking n % 10, add it to a running total, then divide n by 10 to drop the last digit. Repeat until no digits remain. This technique …

C Program to interchange the main diagonal elements of the matrix

Every square matrix has two diagonals: the main diagonal (top-left to bottom-right, elements a[i][i]) and the anti-diagonal (top-right to bottom-left, elements a[i][n-1-i]). This program reads a square matrix, swaps each main-diagonal element with the anti-diagonal element in the same row, and prints the result. The original post used void main(), a broken scanf format string …