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