SlideShare a Scribd company logo
Linked List
-Afif
What is Linked List
A linked list is a linear collection of data elements, called nodes, each
pointing to the next node by means of a pointer. It is a data
structure consisting of a group of nodes which together represent
a sequence. Linked lists were developed in 1955–1956 by Allen
Newell, Cliff Shaw and Herbert A. Simon.
It contains data field & Address field or Link field.
A graphical view of a linked list
Why do we use Linked List?
Linked lists are preferable over arrays when:
a) we need constant-time insertions/deletions from the list (such as in
real-time computing where time predictability is absolutely critical )
b) We don't know how many items will be in the list. With arrays, you
may need to re-declare and copy memory if the array grows too big
c) We don't need random access to any elements
d) We want to be able to insert items in the middle of the list (such as
a priority queue)
Types of Linked List
There are three types of linked list as given below:
1. Singly Linked List
2. Doubly Linked List
3. Circular Linked List
Singly Linked List
A graphical view of a singly linked list
Doubly Linked List
In doubly linked list each node is divided into three parts:
1. The first part is PREV part.
2. The second part is the INFO part.
3. The third part is NEXT part.
A graphical view of a doubly linked list
Circular Linked List
A graphical view of a circular linked list
Singly Linked List Operations
There are several operations in singly linked list:
1.Creation
2. Insertion
3. Deletion
4. Searching
5. Display
Nodes
• Nodes are the units which makes up linked list.
• In singly linked list, nodes are actually structures made up of data and a
pointer to another node.
• Usually we denote the pointer as “*next”
*Nodes structure
struct node
{
int data; //This is where we will store data
struct node *next; //This is the link part
}*head=NULL;
/*Initially we assign “NULL” to the head for later operational purpose*/
*Visual Representation of Node
data next
Node
Creation
• Creation operation is used to create a linked list.
• Generally, we use dynamic memory allocation to create our desired
number of nodes for linked list in program run time.
void create()
{
struct node *newnode, *current;
newnode = (struct node*)malloc(sizeof(struct node));
newnode->next = NULL;
if(head == NULL)
{
head = newnode;
current = newnode;
}
else
{
current->next = newnode;
current = newnode;
}
}
//Creating linked list in ‘C’
*Visual Representation of Linked List
data next
Head
data next data next
NULL
Insertion
• Insertion operation is used to insert a new node in the linked list.
• Insertion is of three types. They are:
 Inserting at first
 Inserting at last
 Inserting at mid
Insertion at first
• There are two steps to be followed to insert a node at first position.
They are:
 Make the next pointer of the node point towards
the first node of the list.
 Make the head pointer point towards this new node.
*Visual Representation of Insertion at First
data next
Head
data next data next
NULL
Newnode
nextdata
void first_insert()
{
struct node *newnode, *current;
newnode = (struct node*)malloc(sizeof(struct node));
newnode->next = NULL;
if(head == NULL)
{
head = newnode;
current = newnode;
}
else
{
newnode->next = head;
head = newnode;
}
}
//Inserting at first
Insertion at last
• Inserting at the last position is a simple process.
 To insert at last we just simply need to make the next pointer of last
node to the new node.
*Visual Representation of Insertion at Last
data next
Head
data next data next
NULLdata next
Newnode
Current/
Last
void last_insert()
{
struct node *newnode, *current;
newnode = (struct node*)malloc(sizeof(struct node));
newnode->next = NULL;
if(head == NULL)
{
head = newnode;
current = newnode;
}
else
{
current->next = newnode;
current = newnode;
}
}
//Inserting at last
Insertion at mid
• There are several steps to be followed to insert a node at mid position.
They are:
 Find the position after which and before which node the new node
is going to be inserted.
 Assign their locations to two different pointers named ‘temp’,
‘temp2’
respectively.
 Make the next pointer of ‘temp’ to point newnode, and the next
pointer of newnode to ‘temp2’.
*Visual Representation of Insertion at Last
data next
Head
data next data next NULL
data next
Newnode
temp temp2
void mid_insert()
{
struct node *newnode, *temp, *temp2;
int position;
newnode = (struct node*)malloc(sizeof(struct
node));
newnode->next = NULL;
if(head == NULL)
{
head = newnode;
current = newnode;
}
else
{
temp=head;
for(i=1;i<position;i++)
temp = temp->next;
temp2 = temp->next;
temp->next = newnode;
newnode->next=temp2;
}
//Inserting at mid
Deletion
• Deleting is a simple process.
 At first we need to find the previous and the next node
of that particular node.
 Then we need to point the next pointer of the previous node to
the next node of the particular node we want to delete.
*Visual Representation of Deletion
data next
Head
data next data next NULL
temp temp2
void delete_node(int n){
int i;
struct node* temp,*p;
temp=root;
if(n==1){
root=temp->link;
}
else{
for(i=1;i<n-1;i++){
temp=temp->link;
}
p=temp->link;
temp->link=p->link;
}
}
//Deletion
Searching
• To search in a linked list we need to follow the steps given below:
 We need a pointer which is assigned with the address of head
pointer.
 Then we start a loop until the last node of the linked list to search.
int search(int n){
int i;
struct node* temp;
temp=root;
int l=length();
for(i=1;i<=l;i++){
if(temp->data==n){
return i;
}
temp=temp->link;
}
if(i>l){
return 0;
}
}
//Searching
Display
• To display thelinked list we need to follow the steps given below:
 We need a pointer which is assigned with the address of head
pointer.
 Then we start a loop until the last node of the linked list to display
the
the list.
void display(){
struct node* temp;
temp=root;
if(temp==NULL){
printf("no data foundn");
}
else{
while(temp!=NULL){
printf("%d-->>",temp->data);
temp=temp->link;
}
}
}
//Display
Uses of Linked List
1. Web-browsers
A good example I see is web-browsers, where it creates a
linked list of web-pages visited, so that when you check
history (traversal of a list) or press back button, the previous
node's data is fetched.
2. Stacks and queues
It is used to develop stacks and queues which have lots of
applications.
3. Image viewer
4. Phonebook
In phonebook the names are
sorting in ascending order. If we
want to add a new contact then
the memory for the new
contact is created by linked
list.
Advantages
• Linked lists are a dynamic data structure, allocating the needed
memory while the program is running.
• Insertion and deletion node operations are easily implemented
in a linked list.
• Linear data structures such as stacks and queues are easily
executed with a linked list.
• They can reduce access time and may expand in real time
without memory overhead.
Disadvantages
• They have a quite difficult to use more memory due to pointers
requiring extra storage space.
• Nodes in a linked list must be read in order from the beginning
as linked lists are inherently sequential access.
• Nodes are stored in continuously, greatly increasing the time
required to access individual elements within the list.
• Difficulties arise in linked lists when it comes to reverse traversing.
For instance, singly linked lists are cumbersome to navigate
backwards and while doubly linked lists are somewhat easier to
read, memory is wasted in allocating space for a back pointer.
Thank you!

More Related Content

PPTX
Linked List
PPTX
Linked List
PPTX
Linked list
PPTX
Linked list
PPTX
Data Structure - Elementary Data Organization
PPTX
Doubly Linked List
PPTX
Linked list in Data Structure and Algorithm
PPT
1.1 binary tree
Linked List
Linked List
Linked list
Linked list
Data Structure - Elementary Data Organization
Doubly Linked List
Linked list in Data Structure and Algorithm
1.1 binary tree

What's hot (20)

PPTX
Doubly & Circular Linked Lists
PPT
Linked List
PDF
Singly linked list
PPTX
single linked list
PDF
Normalization in DBMS
PPTX
Binary Search Tree in Data Structure
PPTX
Linked List - Insertion & Deletion
PPTX
Priority queue in DSA
PPTX
Unit I - Evaluation of expression
PPTX
Threaded Binary Tree.pptx
PPTX
Priority Queue in Data Structure
PPTX
Doubly linked list (animated)
PDF
Heap and heapsort
PPTX
Representation of binary tree in memory
PPT
Singly link list
PPTX
Double Linked List (Algorithm)
PPT
Binary tree
PPT
Data Structures with C Linked List
PPTX
CIRCULAR LINKED LIST _
PPTX
Terminology of tree
Doubly & Circular Linked Lists
Linked List
Singly linked list
single linked list
Normalization in DBMS
Binary Search Tree in Data Structure
Linked List - Insertion & Deletion
Priority queue in DSA
Unit I - Evaluation of expression
Threaded Binary Tree.pptx
Priority Queue in Data Structure
Doubly linked list (animated)
Heap and heapsort
Representation of binary tree in memory
Singly link list
Double Linked List (Algorithm)
Binary tree
Data Structures with C Linked List
CIRCULAR LINKED LIST _
Terminology of tree
Ad

Viewers also liked (20)

PPS
Single linked list
PPT
Linked list
PPT
Linked lists
PPTX
Single linked list
PPTX
linked list
PPT
Link List
PPT
File Handling In C++(OOPs))
PPTX
2CPP17 - File IO
PPTX
Lecture 6: linked list
PPTX
Linked list
PPTX
Linked List data structure
PPTX
basics of file handling
PPTX
Stream classes in C++
PPTX
Parallel Circuits
PPSX
Files in c++
PPT
File handling
PDF
C++ Files and Streams
PPT
linked list
PPT
PPTX
Array implementation and linked list as datat structure
Single linked list
Linked list
Linked lists
Single linked list
linked list
Link List
File Handling In C++(OOPs))
2CPP17 - File IO
Lecture 6: linked list
Linked list
Linked List data structure
basics of file handling
Stream classes in C++
Parallel Circuits
Files in c++
File handling
C++ Files and Streams
linked list
Array implementation and linked list as datat structure
Ad

Similar to Linked list (20)

PPTX
Unit II Data Structure 2hr topic - List - Operations.pptx
PPTX
Unit 5 linked list
PDF
Linked List, Types of Linked LIst, Various Operations, Applications of Linked...
PPT
Unit7 C
PPTX
Linked Lists, Single Linked list and its operations
PDF
LinkedList1LinkedList1LinkedList1111.pdf
PPTX
Data Structures_Linked List
PPTX
linkedlistforslideshare-210123143943.pptx
PPTX
Linked list
PPTX
UNIT 2LINKEDLISdddddddddddddddddddddddddddT.pptx
PPTX
UNIT 3a.pptx
PPTX
Linear data structure concepts
PPTX
Implemention of Linked list concept in Data Structures
PDF
Lec-4_Linked-List (1).pdf
PPT
Linked list1.ppt
PPT
DS Unit 2.ppt
PDF
Fjdkkdnncmckkgkhkhkkhkhkhkhkhkhkhkhkhkhhl
PPT
Introduction to Data structures and Trees.ppt
PPT
Fundamentals of data structures
DOCX
C++ please put everthing after you answer it- thanks Complete the stub.docx
Unit II Data Structure 2hr topic - List - Operations.pptx
Unit 5 linked list
Linked List, Types of Linked LIst, Various Operations, Applications of Linked...
Unit7 C
Linked Lists, Single Linked list and its operations
LinkedList1LinkedList1LinkedList1111.pdf
Data Structures_Linked List
linkedlistforslideshare-210123143943.pptx
Linked list
UNIT 2LINKEDLISdddddddddddddddddddddddddddT.pptx
UNIT 3a.pptx
Linear data structure concepts
Implemention of Linked list concept in Data Structures
Lec-4_Linked-List (1).pdf
Linked list1.ppt
DS Unit 2.ppt
Fjdkkdnncmckkgkhkhkkhkhkhkhkhkhkhkhkhkhhl
Introduction to Data structures and Trees.ppt
Fundamentals of data structures
C++ please put everthing after you answer it- thanks Complete the stub.docx

More from Md. Afif Al Mamun (9)

PPTX
Introduction to Big Data
PPTX
Relational Algebra Introduction
PPTX
Internet of Things(IoT)
PPTX
Introduction to Software
PPTX
Introduction to Cryptography
PPTX
Presentation on pointer.
PPTX
Mechanism of a Microwave Oven.
PPTX
George Harrison
PPTX
Artificial Intelligence(AI).
Introduction to Big Data
Relational Algebra Introduction
Internet of Things(IoT)
Introduction to Software
Introduction to Cryptography
Presentation on pointer.
Mechanism of a Microwave Oven.
George Harrison
Artificial Intelligence(AI).

Recently uploaded (20)

PPTX
bas. eng. economics group 4 presentation 1.pptx
PPTX
Foundation to blockchain - A guide to Blockchain Tech
DOCX
573137875-Attendance-Management-System-original
PPTX
Construction Project Organization Group 2.pptx
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PDF
Arduino robotics embedded978-1-4302-3184-4.pdf
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PPTX
Fluid Mechanics, Module 3: Basics of Fluid Mechanics
PPTX
CH1 Production IntroductoryConcepts.pptx
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
Sustainable Sites - Green Building Construction
PDF
ETO & MEO Certificate of Competency Questions and Answers
PPTX
Welding lecture in detail for understanding
PPTX
web development for engineering and engineering
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
Internet of Things (IOT) - A guide to understanding
bas. eng. economics group 4 presentation 1.pptx
Foundation to blockchain - A guide to Blockchain Tech
573137875-Attendance-Management-System-original
Construction Project Organization Group 2.pptx
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
Operating System & Kernel Study Guide-1 - converted.pdf
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Arduino robotics embedded978-1-4302-3184-4.pdf
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
Embodied AI: Ushering in the Next Era of Intelligent Systems
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
Fluid Mechanics, Module 3: Basics of Fluid Mechanics
CH1 Production IntroductoryConcepts.pptx
Model Code of Practice - Construction Work - 21102022 .pdf
Sustainable Sites - Green Building Construction
ETO & MEO Certificate of Competency Questions and Answers
Welding lecture in detail for understanding
web development for engineering and engineering
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
Internet of Things (IOT) - A guide to understanding

Linked list

  • 2. What is Linked List A linked list is a linear collection of data elements, called nodes, each pointing to the next node by means of a pointer. It is a data structure consisting of a group of nodes which together represent a sequence. Linked lists were developed in 1955–1956 by Allen Newell, Cliff Shaw and Herbert A. Simon. It contains data field & Address field or Link field.
  • 3. A graphical view of a linked list
  • 4. Why do we use Linked List? Linked lists are preferable over arrays when: a) we need constant-time insertions/deletions from the list (such as in real-time computing where time predictability is absolutely critical ) b) We don't know how many items will be in the list. With arrays, you may need to re-declare and copy memory if the array grows too big c) We don't need random access to any elements d) We want to be able to insert items in the middle of the list (such as a priority queue)
  • 5. Types of Linked List There are three types of linked list as given below: 1. Singly Linked List 2. Doubly Linked List 3. Circular Linked List
  • 6. Singly Linked List A graphical view of a singly linked list
  • 7. Doubly Linked List In doubly linked list each node is divided into three parts: 1. The first part is PREV part. 2. The second part is the INFO part. 3. The third part is NEXT part.
  • 8. A graphical view of a doubly linked list
  • 9. Circular Linked List A graphical view of a circular linked list
  • 10. Singly Linked List Operations There are several operations in singly linked list: 1.Creation 2. Insertion 3. Deletion 4. Searching 5. Display
  • 11. Nodes • Nodes are the units which makes up linked list. • In singly linked list, nodes are actually structures made up of data and a pointer to another node. • Usually we denote the pointer as “*next”
  • 12. *Nodes structure struct node { int data; //This is where we will store data struct node *next; //This is the link part }*head=NULL; /*Initially we assign “NULL” to the head for later operational purpose*/
  • 13. *Visual Representation of Node data next Node
  • 14. Creation • Creation operation is used to create a linked list. • Generally, we use dynamic memory allocation to create our desired number of nodes for linked list in program run time.
  • 15. void create() { struct node *newnode, *current; newnode = (struct node*)malloc(sizeof(struct node)); newnode->next = NULL; if(head == NULL) { head = newnode; current = newnode; } else { current->next = newnode; current = newnode; } } //Creating linked list in ‘C’
  • 16. *Visual Representation of Linked List data next Head data next data next NULL
  • 17. Insertion • Insertion operation is used to insert a new node in the linked list. • Insertion is of three types. They are:  Inserting at first  Inserting at last  Inserting at mid
  • 18. Insertion at first • There are two steps to be followed to insert a node at first position. They are:  Make the next pointer of the node point towards the first node of the list.  Make the head pointer point towards this new node.
  • 19. *Visual Representation of Insertion at First data next Head data next data next NULL Newnode nextdata
  • 20. void first_insert() { struct node *newnode, *current; newnode = (struct node*)malloc(sizeof(struct node)); newnode->next = NULL; if(head == NULL) { head = newnode; current = newnode; } else { newnode->next = head; head = newnode; } } //Inserting at first
  • 21. Insertion at last • Inserting at the last position is a simple process.  To insert at last we just simply need to make the next pointer of last node to the new node.
  • 22. *Visual Representation of Insertion at Last data next Head data next data next NULLdata next Newnode Current/ Last
  • 23. void last_insert() { struct node *newnode, *current; newnode = (struct node*)malloc(sizeof(struct node)); newnode->next = NULL; if(head == NULL) { head = newnode; current = newnode; } else { current->next = newnode; current = newnode; } } //Inserting at last
  • 24. Insertion at mid • There are several steps to be followed to insert a node at mid position. They are:  Find the position after which and before which node the new node is going to be inserted.  Assign their locations to two different pointers named ‘temp’, ‘temp2’ respectively.  Make the next pointer of ‘temp’ to point newnode, and the next pointer of newnode to ‘temp2’.
  • 25. *Visual Representation of Insertion at Last data next Head data next data next NULL data next Newnode temp temp2
  • 26. void mid_insert() { struct node *newnode, *temp, *temp2; int position; newnode = (struct node*)malloc(sizeof(struct node)); newnode->next = NULL; if(head == NULL) { head = newnode; current = newnode; } else { temp=head; for(i=1;i<position;i++) temp = temp->next; temp2 = temp->next; temp->next = newnode; newnode->next=temp2; } //Inserting at mid
  • 27. Deletion • Deleting is a simple process.  At first we need to find the previous and the next node of that particular node.  Then we need to point the next pointer of the previous node to the next node of the particular node we want to delete.
  • 28. *Visual Representation of Deletion data next Head data next data next NULL temp temp2
  • 29. void delete_node(int n){ int i; struct node* temp,*p; temp=root; if(n==1){ root=temp->link; } else{ for(i=1;i<n-1;i++){ temp=temp->link; } p=temp->link; temp->link=p->link; } } //Deletion
  • 30. Searching • To search in a linked list we need to follow the steps given below:  We need a pointer which is assigned with the address of head pointer.  Then we start a loop until the last node of the linked list to search.
  • 31. int search(int n){ int i; struct node* temp; temp=root; int l=length(); for(i=1;i<=l;i++){ if(temp->data==n){ return i; } temp=temp->link; } if(i>l){ return 0; } } //Searching
  • 32. Display • To display thelinked list we need to follow the steps given below:  We need a pointer which is assigned with the address of head pointer.  Then we start a loop until the last node of the linked list to display the the list.
  • 33. void display(){ struct node* temp; temp=root; if(temp==NULL){ printf("no data foundn"); } else{ while(temp!=NULL){ printf("%d-->>",temp->data); temp=temp->link; } } } //Display
  • 34. Uses of Linked List 1. Web-browsers A good example I see is web-browsers, where it creates a linked list of web-pages visited, so that when you check history (traversal of a list) or press back button, the previous node's data is fetched. 2. Stacks and queues It is used to develop stacks and queues which have lots of applications.
  • 36. 4. Phonebook In phonebook the names are sorting in ascending order. If we want to add a new contact then the memory for the new contact is created by linked list.
  • 37. Advantages • Linked lists are a dynamic data structure, allocating the needed memory while the program is running. • Insertion and deletion node operations are easily implemented in a linked list. • Linear data structures such as stacks and queues are easily executed with a linked list. • They can reduce access time and may expand in real time without memory overhead.
  • 38. Disadvantages • They have a quite difficult to use more memory due to pointers requiring extra storage space. • Nodes in a linked list must be read in order from the beginning as linked lists are inherently sequential access. • Nodes are stored in continuously, greatly increasing the time required to access individual elements within the list. • Difficulties arise in linked lists when it comes to reverse traversing. For instance, singly linked lists are cumbersome to navigate backwards and while doubly linked lists are somewhat easier to read, memory is wasted in allocating space for a back pointer.