Turning Learners Into Developers
Codekilla
CODEKILLA
C·Intermediate

Data Structures with C

Master DSA — arrays to graphs — using the language that built UNIX.

Build every classic data structure from scratch in C: arrays, linked lists, stacks, queues, trees, graphs, hash tables, heaps. Each chapter is runnable in our online compiler with full Big-O analysis and interview prep.

8 weeks
149 lessons
1 examples
Certificate on completion
// preview.data-structures-c
c
// Singly Linked List Node
#include <stdio.h>
#include <stdlib.h>

typedef struct Node { int v; struct Node *next; } Node;

int main(void) {
    Node *head = NULL;
    for (int i = 3; i >= 1; i--) {
        Node *n = malloc(sizeof(Node));
        n->v = i;
        n->next = head;
        head = n;
    }
    for (Node *p = head; p; p = p->next) printf("%d -> ", p->v);
    printf("NULL\n");
    return 0;
}
# curriculum
0 / 149 lessons·0% complete
01What is a Data Structure?02Need & Importance of Data Structures03Types of Data Structures04Linear Data Structures05Non-Linear Data Structures06Abstract Data Types (ADT)07Overview of Data Structures in C08Applications of Data Structures09What is an Algorithm?10Characteristics of Algorithms11Asymptotic Notations12Big-O Notation (O)13Omega Notation (Ω)14Theta Notation (Θ)15Time Complexity Analysis16Space Complexity Analysis17Best, Average, Worst Case Analysis18Recursion Basics & Analysis19Introduction to Arrays20Types of Arrays (1D, 2D, Multi-dimensional)21Memory Representation of Arrays22Array Traversal23Array Insertion24Array Deletion25Updating Array Elements26Searching in Arrays — Linear Search27Searching in Arrays — Binary Search28Sorting Basics with Arrays29Advantages & Limitations of Arrays30Introduction to Linked List31Singly Linked List32Doubly Linked List33Circular Linked List34Representation in C (Structures & Pointers)35Linked List Creation36Linked List Traversal37Insertion at Beginning38Insertion at End39Insertion at Position40Linked List Deletion41Linked List Searching42Reversing a Linked List43Advantages over Arrays44Introduction to Stack45Stack using Arrays46Stack using Linked List47Stack Operation — Push48Stack Operation — Pop49Stack Operation — Peek50Stack Operation — isEmpty & isFull51Application — Expression Evaluation52Application — Parenthesis Matching53Application — Recursion Handling54Introduction to Queue55Simple Queue56Circular Queue57Priority Queue58Double Ended Queue (Deque)59Queue using Arrays60Queue using Linked List61Queue Operation — Enqueue62Queue Operation — Dequeue63Queue Operation — Front / Rear64Application — CPU Scheduling65Application — Buffering Systems66Introduction to Trees67Tree Terminologies68Binary Tree69Full Binary Tree70Complete Binary Tree71Skewed Tree72Tree Representation in C73Tree Traversal — Inorder74Tree Traversal — Preorder75Tree Traversal — Postorder76Applications of Trees77Introduction to BST78Properties of BST79BST Insertion80BST Deletion81BST Searching82BST Traversals83Complexity Analysis of BST84Need for Balanced Trees85AVL Tree86AVL Rotations (LL, RR, LR, RL)87Introduction to Red-Black Tree88Introduction to Graphs89Graph Terminologies90Types of Graphs — Directed / Undirected91Types of Graphs — Weighted / Unweighted92Graph Representation — Adjacency Matrix93Graph Representation — Adjacency List94Graph Traversal — Breadth First Search (BFS)95Graph Traversal — Depth First Search (DFS)96Applications of Graphs97Linear Search98Binary Search99Comparison of Searching Algorithms100Bubble Sort101Selection Sort102Insertion Sort103Merge Sort104Quick Sort105Comparison of Sorting Algorithms106Introduction to Hashing107Hash Functions108Hash Table109Collision Resolution — Chaining110Collision Resolution — Open Addressing111Applications of Hashing112Introduction to Heap113Min Heap114Max Heap115Heap Operation — Insert116Heap Operation — Delete117Heap Operation — Heapify118Priority Queue using Heap119Trie (Prefix Tree)120Disjoint Set (Union-Find)121Segment Tree (Basic Intro)122Sparse Matrix Representation123Basics of File Handling in C124Storing Data Structures in Files125Reading & Writing Structured Data126Applications — Operating Systems127Applications — Database Management Systems128Applications — Compiler Design129Applications — Artificial Intelligence130Applications — Networking Systems131Implementation-Based Questions132Algorithm Tracing133Time Complexity Problems134Debugging Data Structure Code135Mini Project — Stack-based Calculator136Mini Project — Queue Simulation (Ticket System)137Mini Project — Linked List Student Manager138Mini Project — Tree Traversal Visualizer139Mini Project — Graph Path Finder140Capstone — Build a DSA Visualizer / Playground141Capstone — Array Operations Visualization142Capstone — Stack & Queue Animation143Capstone — Tree Traversals Visualization144Capstone — Graph BFS/DFS Visualization145Memory Management in C146Pointer Optimization147Dynamic Memory Allocation (malloc, calloc, free)148Integration with APIs (Advanced)149Using Data Structures in Real Projects
enroll.now()
Free
Full access. No credit card.
✓ Lifetime access
✓ Code along with projects
✓ Community support 24/7