Linked List using C | Data Structures Tutorial

Linked List using C | Data Structures Tutorial

Introduction to LinkedList

In this section, the speaker introduces the concept of a LinkedList in data structures and algorithms. They explain that a LinkedList is a dynamic collection type with no fixed size.

What is a LinkedList?

  • A LinkedList is a dynamic memory allocation collection type.
  • It is not static and does not have a fixed size.
  • Compared to arrays, stacks, and queues, it offers advantages in terms of insertions and deletions.

Advantages of LinkedList over Arrays

  • Insertions and deletions are faster in LinkedList compared to arrays.
  • In arrays, inserting an element requires shifting all subsequent elements, while in LinkedList, elements can be inserted without shifting.

Insertion and Deletion in LinkedList

This section discusses how insertions and deletions are faster in LinkedList compared to arrays, stacks, and queues.

Inserting Elements into LinkedList

  • Elements in a LinkedList are stored as nodes.
  • Nodes are connected through links or pointers.
  • To insert an element between two existing nodes, no shifting of elements is required. The new node can be easily connected by updating the links.

Advantages of using LinkedList

  • Insertions and deletions are faster compared to arrays.
  • No need for shifting elements when inserting or deleting nodes.

Node Structure in Single Linked List

This section explains the structure of nodes in single linked lists.

Structure of Node

  • A node consists of two fields - data field and link field (pointer).
  • The data field stores the actual data value.
  • The link field connects one node to another node.

Types of Linked Lists

This section introduces the three types of linked lists commonly used in algorithms.

Types of Linked Lists

  1. Single LinkedList: Each node has a data field and a link field pointing to the next node.
  1. Double LinkedList: Each node has a data field, a link field pointing to the next node, and another link field pointing to the previous node.
  1. Circular LinkedList: Similar to single or double linked lists, but the last node's link points back to the first node.

Node Structure in Double Linked List

This section explains the structure of nodes in double linked lists.

Structure of Node in Double LinkedList

  • A node consists of three fields - data field, previous link field, and next link field.
  • The previous link connects one node to its previous node.
  • The next link connects one node to its next node.

The transcript does not provide information about circular linked lists.

Linked List and Circular Linked List

In this section, the speaker explains the concept of linked lists and circular linked lists. They mention that a circular linked list is similar to a double linked list, but with an additional field in the node. The node in a circular linked list has three fields: data, left link (or left variable), and right link (or right variable).

  • A circular linked list is similar to a double linked list.
  • The node in a circular linked list has three fields: data, left link (or left variable), and right link (or right variable).

Logic and Algorithm for Linked Lists

This section emphasizes that while different people may write different logic for implementing linked lists, the final implementation should be the same. The speaker mentions that there are three types of linked lists: single linked list, double linked list, and circular linked list.

  • Different people may write different logic for implementing linked lists.
  • The final implementation of all types of linked lists should be the same.
  • There are three types of linked lists: single linked list, double-linked list, and circular-linked list.

Structure of Nodes in Circular Linked List

Here, the speaker explains the structure of nodes in a circular linked list. They mention that each node has three fields: data field, left link (or left variable), and right link (or right variable). In a single-linked list, nodes have only one field (data) and one mandatory field (link). However, in a circular-linked list, nodes have two additional fields for linking.

  • Each node in a circular-linked list has three fields: data field, left link (or left variable), and right link (or right variable).
  • In a single-linked list, nodes have only one field (data) and one mandatory field (link).
  • In a circular-linked list, nodes have two additional fields for linking.

Creating Nodes in a Single Linked List

This section focuses on creating nodes in a single linked list. The speaker explains the process of creating node structures and allocating memory dynamically. They provide examples of different nodes with their respective memory locations.

  • Nodes in a single linked list are created using node structures.
  • Memory is allocated dynamically for each node.
  • Examples of different nodes with their memory locations are provided.

Structure of Node and Link Field

Here, the speaker discusses the structure of a node and the link field in detail. They explain that the structure consists of two fields: an integer data field and a link field. The link field stores the address of the next node in the linked list.

  • The structure of a node consists of two fields: an integer data field and a link field.
  • The link field stores the address of the next node in the linked list.

Pointer Type for Link Field

In this section, the speaker explains that pointers can point to specific types of data. They mention that since the link field points to another node, it is considered as pointing to a user-defined data type (struct node type).

  • Pointers can point to specific types of data.
  • The link field in a node points to another node, making it point to a user-defined data type (struct node type).

Memory Allocation for Nodes

Here, the speaker discusses how memory is allocated for nodes in dynamic memory allocation. They mention using malloc function to allocate memory based on sizeof(struct node). The root variable is used to store the first node's address.

  • Memory is allocated for nodes using the malloc function.
  • The size of memory allocated is based on sizeof(struct node).
  • The root variable stores the address of the first node.

Memory Allocation and Typecasting

This section explains how memory allocation is done using malloc and typecasting. The speaker mentions that malloc returns a generic pointer (void pointer), so typecasting is necessary to convert it into a struct node type pointer.

  • Memory allocation is done using malloc.
  • Malloc returns a generic pointer (void pointer).
  • Typecasting is necessary to convert the void pointer into a struct node type pointer.

Conclusion

The speaker concludes by stating that creating linked lists is a dynamic process, and only the first node's address is stored in the root variable. They mention that further operations on single linked lists will be discussed in subsequent sections.

  • Creating linked lists is a dynamic process.
  • Only the first node's address is stored in the root variable.
  • Further operations on single linked lists will be discussed in subsequent sections.
Video description

Linked List using C | Data Structures Tutorial ** For Online Training Registration: https://goo.gl/r6kJbB ► Call: +91-8179191999 Join Here For C Language Updates : https://t.me/Clanguageupdates 💡 Also Watch C Language Tutorials: https://goo.gl/qDhJ2r Core Java FAQ's: https://goo.gl/qGh5mA Core Java Tutorials: https://goo.gl/NbaEge Java Programming Tutorials by Mr.Hari krishna: https://goo.gl/HThq6H Advanced Java Programming Tutorials by Mr.Nataraj: https://goo.gl/1U2Qgy Subscribe to our channel and hit the bell 🔔🔔🔔 icon to get video updates. 💡 Visit Our Websites For Classroom Training: https://nareshit.in/data-structure-training/ For Online Training: https://nareshit.com/data-structure-training/ #DataStructures #Training #Course #Tutorials -------------------------- 💡 About NareshIT: "Naresh IT is having 14+ years of experience in software training industry and the best Software Training Institute for online training, classroom training, weekend training, corporate training of Hadoop, Salesforce, AWS, DevOps, Spark, Data Science, Python, Tableau, RPA , Java, C#.NET, ASP.NET, Oracle, Testing Tools, Silver light, Linq, SQL Server, Selenium, Android, iPhone, C Language, C++, PHP and Digital Marketing in USA, Hyderabad, Chennai and Vijayawada, Bangalore India which provides online training across all the locations -------------------------- 💡 Our Online Training Features: 🎈 Training with Real-Time Experts 🎈 Industry Specific Scenario’s 🎈 Flexible Timings 🎈 Soft Copy of Material 🎈 Share Videos of each and every session. -------------------------- 💡 Please write back to us at 📧 us.training@nareshit.com/ 📧 online@nareshit.com or Call us at the USA: ☎+1404-232-9879 or India: ☎ +918179191999