Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Mastering Data Structure Using C
Rating: 4.2 out of 5(114 ratings)
859 students

Mastering Data Structure Using C

Let us Master it
Last updated 3/2021
English
English [Auto],

What you'll learn

  • Stack
  • Queue
  • Linked List
  • Tree
  • Heap
  • Hashing
  • Tries
  • Graph

Course content

8 sections108 lectures36h 37m total length
  • Introduction12:41

    Understand why data structures organize data in main memory to boost program efficiency, contrasting RAM and hard disk, and enabling structured, organized storage during execution.

  • Why Dynamic DataStructure ?36:37

    Discover why dynamic data structures, notably linked lists, offer flexible, expandable storage. Learn how heap memory, pointers, and dynamic allocation enable insertion, deletion, and size changes without fixed limits.

  • Why Linked List ?27:37

    Explore why linked lists are used, learn the node structure with data and a next pointer, and master creating, casting, and accessing nodes with malloc and the arrow operator.

  • What is Linked List ?27:37

    Learn what a linked list is as a dynamic data structure. Each node stores data and a next pointer, allocated with malloc and accessed via the arrow operator.

  • More about Linked List30:36

    Explore linked list concepts in C by manipulating node addresses, next pointers, and null termination, including how to move pointers, access data, and identify the last node.

  • How to display linked list ?18:36

    Understand how to display a linked list by traversing from the first node through each next pointer, printing node data until the last node and null ends.

  • Iterative Implementation of Creating and displaying the linked list26:24

    Create and display a linked list iteratively using C. Build nodes with malloc and traverse to print data until the user enters -1.

  • Recursive Implementation of Creating and displayibf Linked List32:05

    In mastering data structures using C, this lecture demonstrates recursive creation and display of a linked list, including node allocation, data handling, and traversal.

  • Time and Space Complexity Analysis of Displaying Nodes in Linked List26:15

    Analyze time and space complexity of displaying a linked list, comparing iterative and recursive approaches, and explore recurrence relation and constant space considerations.

  • How to count Nodes in linked list ?36:55

    Count the nodes in a linked list by traversing from the head to the end, incrementing a counter, or use a recursive approach; derive the list length.

  • Implementation of counting nodes in linked list16:01

    Count nodes in a linked list with an iterative loop and a head pointer, then apply a recursive approach to display the length, using a minus-one sentinel.

  • Time and Space Complexity Analysis of counting nodes in linked list27:47

    Analyze time and space complexity for counting nodes in a linked list, comparing iterative and recursive approaches and highlighting linear time with differing space usage.

  • How to find the sum of all nodes in linked list ?44:21

    Explore how to find the sum of all nodes in a linked list by traversing each node and accumulating data, with both iterative and recursive approaches.

  • Implementation of finding the sum of all nodes in linked list14:24

    Learn to implement summing all nodes in a linked list in C using iterative traversal and a recursive approach, including structure setup and traversal logic.

  • Time and Space Complexity Analysis of finding sum of all nodes in linked list23:09

    Analyze the time and space complexity of summing all nodes in a linked list; both iterative and recursive approaches have O(n) time, but differ in space: O(1) vs O(n).

  • Finding maximum element in a Linked List35:42

    Learn to find the maximum element in a linked list using iterative and recursive approaches, traversing nodes with pointers and updating the maximum value along the way.

  • Implementation of finding maximum element in a Linked List14:01

    Implement iterative and recursive methods to find the maximum element in a linked list. Pass the first node address, use a node structure, and return the max value.

  • Time and Space Complexity Analysis of finding maximum element in linked list24:02

    Analyze time and space complexity for finding the maximum in a linked list using iterative and recursive approaches. Iterative uses constant space; recursive uses linear space.

  • Searching in a Linked List26:33

    Understand searching in a linked list by comparing linear search and binary search, and implement both iterative and recursive search approaches with discussions on time and space complexity.

  • Implementation of Searching in Linked List15:49

    Mastering data structure using c introduces implementing searching in a linked list, using iterative and recursive approaches, with a node structure (data and next) and returning the found node address.

  • Time and Space Complexity Analysis of Searching in Linked List34:43

    Explore time and space complexity for searching in a linked list, covering best, worst, and average cases, and compare iterative and recursive approaches with memory usage.

  • How to insert new node in Linked List ?33:47

    Learn to insert a new node into a linked list by position, including before the first node and between nodes, by creating the node, storing data, and updating next pointers.

  • Implementation of inserting new node in Linked List15:27

    Master inserting a node into a linked list in C by using create and display helpers, allocating memory with malloc, and placing a node before or after given position.

  • Time Complexity Analysis of inserting new node in Linked List18:12

    Analyze time and space complexity of inserting a new node in a linked list, detailing best, worst, and average cases, including end vs beginning insertions, and noting constant extra space.

  • Recursive Approach of inserting a new node in Linked List11:15

    Master recursive insertion of a new node into a linked list by translating iterative approach, handling pointers, base conditions, and returning the head while analyzing activation records and space complexity.

  • Implementation of Inserting a new Node in Linked List9:55

    Explore implementing a recursive insertion in a linked list using C, converting an iterative approach, handling the first node address, insert point, and traversal.

  • Time and Space Complexity Analysis of Inserting a new node in Linked List14:21

    The lecture analyzes the time and space complexity of inserting a node in a linked list using the recursive approach, deriving a recurrence and comparing with the iterative method.

  • Creating Linked List using Insert Function15:46

    Learn how to create a linked list from scratch using the insert method, compare it with the traditional approach, and analyze efficiency and time and space trade-offs.

  • Implementation of Creating Linked List using Insert Function15:46

    Learn how to create a linked list in C by inserting nodes with iterative and recursive insert functions, handling the first node, insertion points, and list display.

  • Time and Space Complexity Analysis of Creating Linked List using Insert Function13:04

    Analyze time and space complexity of creating a linked list with the insert method, comparing iterative and recursive approaches; both yield O(n^2) time, with O(1) versus O(n) space.

  • Inserting a Node in Sorted Linked List27:24

    insert a node into a sorted linked list while preserving ascending order by creating a new node, traversing with pointers, and updating links and head accordingly.

  • Recursive Approach of inserting a new node in Sorted Linked List21:32

    Explore converting the insertion in a sorted linked list to a recursive approach, using base condition and three pointers to update next links and node data through recursive calls.

  • Implementation of inserting a new Node in Sorted Linked List13:32

    Implement a new node insertion into a sorted linked list using iterative and recursive approaches, with examples like inserting 45 between 40 and 60, and analyze time and space complexity.

  • Time and Space Complexity of inserting a new node in sorted Linked List21:24

    Master the time and space complexity of inserting a node into a sorted linked list, comparing iterative and recursive approaches, and analyzing best, worst, and average cases.

  • Deleting a Node from Linked List29:45

    Learn two deletion strategies in a linked list: remove the first node and delete any other node, updating links and freeing memory to maintain structure.

  • Recursive Approach of deleting a Node from Linked List18:18

    Learn to convert the iterative deletion of a node from a linked list to a recursive approach, using a base condition when position equals one and returning head after deallocation.

  • Implementation of deleting a Node from Linked List16:56

    Implement both iterative and recursive delete node functions in a linked list, with header and node structures, memory management via free, and a display function for verification in C.

  • Time and Space Complexity of deleting a node from linked list19:23

    analyze time and space complexity of deleting a node from a linked list using iterative and recursive approaches, noting best case constant time and worst and average linear time.

  • How to check if linked list is sorted ?22:52

    Check if a linked list is sorted in ascending order by traversing nodes, comparing each data with the previous value, and returning 1 if sorted or 0 otherwise.

  • Recursive approach to check if linked list is sorted21:25

    Explore how to convert an iterative linked-list sorted check into a recursive approach in C, tracing activation records and memory usage while validating the sort order.

  • Implementation of checking if linked list is sorted15:27

    Master the implementation to check if a linked list is sorted, covering iterative and recursive approaches, along with node structure and dynamic list creation from user input.

  • Time and Space Complexity Analysis of checking if linked list is sorted23:10

    Mastering data structure using C presents time and space complexity analysis for checking if a linked list is sorted, comparing iterative and recursive approaches across best, worst, and average cases.

  • Removing Duplicates from Linked List15:05

    Remove duplicates from a linked list by iterating with pointers, comparing node data, and deleting duplicates in an unsorted list; implement a function that starts at the first node.

  • Recursive Approach of removing duplicates from Linked List17:32

    Explore the recursive approach to removing duplicates from a linked list in C, converting an iterative loop into recursion with proper node pointers.

  • Implementation of removing duplicates from Linked List12:49

    Learn iterative and recursive techniques to remove duplicates from a linked list in C, using create, display, and remove duplicates functions with practical test data.

  • Time and Space Complexity of removing duplicates from linked list16:42

    Assess time and space complexity for removing duplicates in a linked list, comparing iterative and recursive approaches; iterative runs in linear time with constant space, while recursive uses linear space.

  • Reversing Linked List Method 118:40

    Explore two methods to reverse a linked list in C: reversing elements (data) and reversing links (pointers), with an example and setup for a later link reversal.

  • Implementation of Reversing Linked List Method 111:49

    Demonstrates reversing a linked list using a lincolnesque method by copying elements to an array, reversing them, and copying back to the list.

  • Reversing Linked List Method 222:54

    Master the three-pointer method to reverse a linked list, using sliding steps and reverse linking to update next pointers from the first node toward the last.

  • Implementation of Reversing Linked List Method 210:14

    Implement the reverse linked list method 2 in C using a three-pointer approach, updating create and display routines and performing sliding and reversal to yield a new first node.

  • Time and Space Complexity Analysis of reversing linked list15:38

    Analyze time and space complexity of reversing a linked list, compare two methods, and show that method two uses linear time and constant space, making it more efficient.

  • Concatenation and Merging of two Linked List46:33

    Learn to concatenate two linked lists into a single list and merge two sorted linked lists into a unified sorted list in C, using pointer manipulation.

  • Implementation of Concatenating and Merging of two Linked List28:29

    Learn to implement concatenation and merging of two linked lists in C, including creating lists, linking the first to the second, and merging into a new sorted list.

  • Time and Space Complexity Analysis of Concatenating and Merging Linked List18:48

    Analyze the time and space complexity of concatenating and merging linked lists, showing linear time and constant space with two-pointer approaches.

  • Check if Linked List has Loop24:21

    Learn to detect a loop in a linked list with a two-pointer method, compare node visits, and explore storage-based and unique-element approaches discussed in the lecture.

  • Recursive Approach of checking if linked list has loop13:07

    Explore a recursive approach to detect a loop in a linked list by converting an iterative solution, handling pointers and base cases, and analyzing the recursive flow.

  • Implementation of checking if linked list has loop24:49

    Implement and verify loop detection in a linked list using iterative and recursive approaches in C, employing slow and fast pointers, node creation, and testing with crafted lists.

  • Time and Space Complexity of checking if linked list has loop20:21

    Analyze time and space complexity for detecting a loop in a linked list using iterative and recursive methods, highlighting constant space versus linear space due to activation records.

Requirements

  • Recursion
  • Syntax of C Programming

Description

As applications are getting complex and data rich, there are three common problems that applications face now-a-days.

  • Data Search − Consider an inventory of 1 million(106) items of a store. If the application is to search an item, it has to search an item in 1 million(106) items every time slowing down the search. As data grows, search will become slower.

  • Processor speed − Processor speed although being very high, falls limited if the data grows to billion records.

  • Multiple requests − As thousands of users can search data simultaneously on a web server, even the fast server fails while searching the data.

To solve the above-mentioned problems, data structures come to rescue. Data can be organized in a data structure in such a way that all items may not be required to be searched, and the required data can be searched almost instantly.

Who this course is for:

  • Programmers who are interested to learn DataStructure