Doubly Linked List in C – Insert, Delete, and Traverse Both Ways

A doubly linked list in C extends the singly linked list by giving each node two pointers: one to the next node (next) and one to the previous node (prev). This bidirectional linkage lets you traverse the list in either direction and delete a node in O(1) given only a pointer to that node — …

Queue Using Linked List in C – Dynamic with No Size Limit

A queue implemented with a linked list in C has no fixed size limit — it grows and shrinks dynamically using malloc and free. Each node holds a value and a pointer to the next node. Two pointers, front and rear, track the dequeue end and enqueue end respectively. Linked List Queue vs Array Queue …

Circular Queue in C – Array Implementation with Modulo Wrap

A circular queue in C solves the main limitation of a linear queue: wasted array slots after dequeuing. In a linear queue, rear keeps advancing rightward; once it hits the end of the array, the queue reports “full” even if dequeued slots at the front are free. A circular queue wraps rear back to index …

Queue Program in C – Array Implementation with ENQUEUE and DEQUEUE

A queue program in C implements the FIFO (First In, First Out) data structure — elements are inserted at the rear and removed from the front, just like a real queue. The two core operations are ENQUEUE (insert) and DEQUEUE (remove). This page covers the array-based linear queue with all operations, a step-by-step trace, and …

Infix to Postfix Conversion in C – Shunting-Yard Algorithm

Infix to postfix conversion in C transforms a human-readable arithmetic expression like A + B * C into postfix notation A B C * +, where operators follow their operands. Postfix eliminates the need for parentheses and precedence rules during evaluation — a stack scan from left to right is all that’s needed. This page …

C Program to convert IP address to 32-bit long int

An IPv4 address is displayed as four decimal octets separated by dots (e.g., 192.168.1.1) but is stored internally as a single 32-bit unsigned integer. Converting between the dotted-decimal string and the integer form is a fundamental networking operation — inet_addr() in the POSIX socket API does exactly this. Understanding how to do it manually shows …