Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Learn Data Structures using C Programming Language
Sec-1: Course Details
Lec-1.1: Prerequisites, Topics covered, and Reference book (2:09)
Lec-1.2: About quizzes and exercises (2:52)
Sec-2: Introduction to Data Structures
Lec-2.1: Why study Data Structures and What is a Data Structure (2:12)
Lec-2.2: The Big-O notation for representation of performance measure of algorithms (11:19)
Sec-3: Arrays : An Introduction
Lec-3.1: The definition of an array (3:30)
Lec-3.2: Array limits (2:08)
Lec-3.3: Element addressing in an array (9:52)
Sec-4: An application of arrays: Fast Transpose of a Sparse Matrix
Lec-4.1: Introduction to Sparse Matrix Transpose (2:16)
Lec-4.2: Sparse matrix representation in a program (3:13)
Lec-4.3: First attempt at sparse matrix transpose: A crude solution (4:19)
Lec-4.4: Second attempt at sparse matrix transpose: A simple solution (7:49)
Lec-4.5: Third and final attempt: Fast Transpose of a Sparse Matrix (8:48)
Sec-5: Stacks and Queues: Introduction
Lec-5.1: An Introduction to Stacks and Queues (2:24)
Sec-6: Stack functionalities
Lec-6.1: Stack functionalities and "push" function (4:03)
Lec-6.2: "pop" function in Stacks (3:29)
Sec-7: An application of stacks: A Mazing Problem
Lec-7.1: Stacks in Procedure Calls and Recursion (6:21)
Lec-7.2: Introduction to A Mazing Problem (6:26)
Lec-7.3: Recursive solution to A Mazing problem: A partial solution (7:15)
Lec-7.4: Recursive solution to A Mazing problem: A full solution (6:22)
Lec-7.5: Non-recursive solution to A Mazing Problem (7:27)
Sec-8: Queue functionalities
Lec-8.1: Queue definitions and Linear Queue (6:40)
Lec-8.2: Circular Queue (6:45)
Sec-9: Linked Lists
Lec-9.1: Why do we need linked lists? (5:20)
Lec-9.2: What is a linked list? (4:31)
Lec-9.3: Creation of a linked list (3:38)
Lec-9.4: Insertion of a new node in between two nodes in a singly linked list (6:00)
Lec-9.5: Insertion of a new node at the corners in a singly linked list (3:10)
Lec-9.6: Deletion of a node in a singly linked list (4:45)
Lec-9.7: Inplace reversal of a singly linked list (4:40)
Lec-9.8: Insertion and deletion of a node in a doubly linked list (8:28)
Sec-10: Trees : An Introduction
Lec-10.1: Terms associated with Tree data structure (6:12)
Sec-11: An application of Trees : "Set" representation
Lec-11.1: Representation of trees using array (5:35)
Lec-11.2: Union of two disjoint sets : First version: A simple union (6:03)
Lec-11.3: Find the root element of a tree: First version: A simple find (6:05)
Lec-11.4: Union of two disjoint sets : Second version: Weighted union (9:59)
Lec-11.5: Find the root element of a tree: Second version: Reduction in tree height (6:02)
Sec-12: Binary Trees
Lec-12.1: Definition of a binary tree and Types of binary trees (4:34)
Lec-12.2: Some interesting properties of binary trees (3:18)
Lec-12.3: Representation of binary trees using arrays (4:59)
Lec-12.4: Representation of binary trees using linked lists (4:53)
Lec-12.5: Binary Tree Traversal (3:39)
Lec-12.6: Inorder, preorder, and postorder traversals : An Introduction (10:03)
Lec-12.7: Inorder, preorder, and postorder traversals : An Implementation (4:01)
Sec-13: Graphs : An Introduction
Lec-13.1: Basic Graph Terminologies (3:34)
Lec-13.2: Complete graph and Subgraph (6:14)
Lec-13.3: Connected component of a graph (7:18)
Lec-13.4: Degree of a vertex (1:58)
Sec-14: Graph Representation
Lec-14.1: Graph representation using Adjacency Matrix (4:10)
Lec-14.2: Graph representation using Adjacency List (6:59)
Lec-14.3: Representation of a directed graph (3:05)
Lec-14.4: How to find out the degree of a vertex in a graph (2:49)
Lec-14.5: Inverse adjacency list for a directed graph (2:03)
Sec-15: Graph search: Depth First Search (DFS) and Breadth First Search (BFS)
Lec-15.1: Depth First Search (DFS) (5:05)
Lec-15.2: Breadth First Search (BFS) (6:05)
Lec-15.3: Time estimates of DFS and BFS (7:35)
Sec-16: Graph application : Finding Connected Components of a graph
Lec-16.1: How to find out the connected components of a graph using DFS/BFS (7:57)
Sec-17: Graph application : Minimum Spanning Tree algorithm
Lec-17.1: Finding spanning trees using BFS or DFS (6:02)
Lec-17.2: What is a minimum spanning tree? (5:12)
Lec-17.3: The minimum spanning tree algorithm : Theory (5:26)
Sec-18: Implementation of the Minimum Spanning Tree Algorithm
Lec-18.1: Extracting a list of unique edges from adjacency list (8:06)
Lec-18.2: Finding the edge with least cost from the list of unique edges (5:56)
Lec-18.3: Use of set union and find-root operations for detecting cycles in the tree (10:19)
Lec-18.4: Constructing the minimum spanning tree: Putting it all together (10:24)
Sec-19: Graph application: Dijkstra's Shortest Path Algorithm
Lec-19.1: An introduction to the shortest path algorithm (4:30)
Lec-19.2: Data structures used in the shortest path algorithm (7:16)
Lec-19.3: Implementation of the shortest path algorithm as a program (11:35)
Sec-20: Internal Sorting Techniques : Introduction
Lec-20.1: Introduction to sorting (6:59)
Lec-20.2: Summary of some internal sorting techniques (11:04)
Lec-20.3: The nature of input data in internal sorting (6:52)
Sec-21: Internal Sorting: Insertion Sort
Lec-21.1: Insertion Sort Algorithm (8:58)
Lec-21.2: Insertion sort : Time and space analysis (7:35)
Sec-22: Internal sorting : Quicksort
Lec-22.1: Quicksort Algorithm (Recursive) (9:54)
Lec-22.2: Quicksort : Time analysis : Average case (8:31)
Lec-22.3: Quicksort : Time analysis : Worst case (5:28)
Lec-22.4: Quicksort : Space consumption (3:02)
Lec-22.5: Quicksort : Improvements (including non-recursive version) (6:32)
Sec-23: Internal sorting : Mergesort
Lec-77: Mergesort : "merge" functionality and time & space analysis of "merge" (8:54)
Lec-78: Mergesort : Iterative solution and time & space analysis (12:39)
Lec-79: Mergesort : Time and space analysis (4:30)
Sec-24: Internal Sorting : Heapsort
Lec-80: Heapsort : Introduction and properties of full binary tree (6:13)
Lec-81: Heapsort : Initial heapification of the input tree (7:09)
Lec-82: Heapsort : Adjust functionality and time analysis (3:58)
Lec-83: Heapsort : Algorithm & time analysis (part-1) (8:15)
Lec-84: Heapsort : Algorithm & time analysis (Part-2) (8:13)
Sec-25: Internal sorting : Radix Sort
Lec-85: Radix sort : Introduction (4:20)
Radix sort : Sorting by picking keys from left to right (3:03)
Radix sort : Sorting by picking keys from right to left (5:43)
Radix sort : Algorithm to sort by picking keys from right to left (3:36)
Lec-89: Radix sort : Time and space analysis (2:30)
Lec-8.1: Queue definitions and Linear Queue
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock