
Master core data structures in C in Arabic for beginners, covering primitive data types, arrays, stacks, queues, linked lists, trees, graphs, and hash tables, with practical insertion and deletion concepts.
Explore implementing and using linked lists and arrays in C, with insert and delete operations, dynamic memory and pointers, and queue, stack, and sorted/doubly linked list concepts.
Explore stacks, queues, and linked lists in C, including circular queues and memory concepts. Practice insertion and deletion, and understand overflow and underflow conditions.
Explore abstract data types and encapsulation, and learn how interfaces separate contracts from implementation in stack data structures, with push and pop operations demonstrated in C.
Explore the queue as a linear data structure with front and rear, applying first in, first out, and compare it to a stack's last in, first out.
Explore variations of queues in data structures, including simple queues, circular queues, priority queues, and a doubly ended priority queue, with focus on length, time, and insertion.
Explore the array-based queue concept and its circular implementation in C, covering front and rear indices, memory layout, and queue operations.
Learn how to implement a circular queue using an array in C, manage the front and rear indices, and apply modulus with the maximum size to control element insertion.
Learn how a hash table handles insertion by using a hash function to derive an index, apply modulus with the table size, and place data at the computed slot.
Learn how hash tables handle collisions using open addressing and chaining with linked lists, covering insertion, deletion, and hash function behavior.
Explore graph components by identifying vertices, nodes, and edges within a graph, and understand how components define the graph structure.
Explore weighted versus unweighted graphs in data structures, comparing edge costs, nodes, and shortest paths from A to C, and learn how weights influence path selection.
In this course, you will learn Data Structures using the C programming language, explained step by step in Arabic.
This course focuses on building a strong conceptual understanding of data structures while also providing practical C implementations. It is suitable for learners who want to understand how data structures work internally, when to use them, and why they matter in real-world programming.
Note: The course recording is still in progress, and new content will be added gradually.
What You Will Learn
Core concepts of data structures and their applications
Time complexity and performance analysis
Abstract Data Types (ADT) and encapsulation
Implementation of data structures using C
Practical problem-solving through challenges and tasks
Course Content
Section 01: Introduction
Section 02: Time Complexity
Section 03: Abstract Data Types
Abstract Data Types (ADT) and encapsulation
Creating user and implementation files
Section 04: Stack (Array-Based)
Stack concept and applications
Array-based stack idea
Array-based stack implementation
Challenge
Task
Section 05: Queue (Array-Based)
Queue concept and applications
Array-based queue idea
Array-based queue implementation
Challenge
Task
Section 06: List
List concept and applications
Array-based list idea
Linked-based list idea
Linked-based list implementation
Challenge
Task
Section 07: Stack (Linked-Based)
Linked-based stack idea
Linked-based stack implementation
Section 08: Queue (Linked-Based)
Linked-based queue idea
Linked-based queue implementation
Section 09: Revision
Section 10: Trees
Tree concept and applications
Binary Search Tree (BST)
Binary Search Tree implementation
Section 11: Advanced Data Structures
Dictionaries
AVL Trees
Hashing
Hash Tables
Section 12: Graphs
Section 13: Revision
Section 14: What’s Next
Prerequisites
Basic knowledge of the C programming language
Understanding of pointers and structures is recommended
If your goal is to learn data structures concepts regardless of the programming language, you are still welcome. This course explains the idea behind each data structure, when to use it, where it fits, and why it is important.
How to Get the Most Out of This Course
To maximize your learning experience:
Watch the videos carefully
Read the provided external resources
Think deeply about the concepts
Try to solve the challenges and tasks on your own