SlideShare ist ein Scribd-Unternehmen logo
1 von 39
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!

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

UNIT I LINEAR DATA STRUCTURES – LIST
UNIT I 	LINEAR DATA STRUCTURES – LIST 	UNIT I 	LINEAR DATA STRUCTURES – LIST
UNIT I LINEAR DATA STRUCTURES – LIST
 
Linked list
Linked listLinked list
Linked list
 
Binary Tree in Data Structure
Binary Tree in Data StructureBinary Tree in Data Structure
Binary Tree in Data Structure
 
Link list
Link listLink list
Link list
 
Java Linked List Tutorial | Edureka
Java Linked List Tutorial |  EdurekaJava Linked List Tutorial |  Edureka
Java Linked List Tutorial | Edureka
 
Double Linked List (Algorithm)
Double Linked List (Algorithm)Double Linked List (Algorithm)
Double Linked List (Algorithm)
 
Linked lists
Linked listsLinked lists
Linked lists
 
Queue ppt
Queue pptQueue ppt
Queue ppt
 
Linked List
Linked ListLinked List
Linked List
 
linked lists in data structures
linked lists in data structureslinked lists in data structures
linked lists in data structures
 
Stack
StackStack
Stack
 
Linked list
Linked listLinked list
Linked list
 
Doubly Linked List
Doubly Linked ListDoubly Linked List
Doubly Linked List
 
Linked List, Types of Linked LIst, Various Operations, Applications of Linked...
Linked List, Types of Linked LIst, Various Operations, Applications of Linked...Linked List, Types of Linked LIst, Various Operations, Applications of Linked...
Linked List, Types of Linked LIst, Various Operations, Applications of Linked...
 
Queues in C++
Queues in C++Queues in C++
Queues in C++
 
Data Structures with C Linked List
Data Structures with C Linked ListData Structures with C Linked List
Data Structures with C Linked List
 
Linked list
Linked list Linked list
Linked list
 
Different Sorting tecniques in Data Structure
Different Sorting tecniques in Data StructureDifferent Sorting tecniques in Data Structure
Different Sorting tecniques in Data Structure
 
Queues
QueuesQueues
Queues
 
Data Structure and Algorithms Binary Search Tree
Data Structure and Algorithms Binary Search TreeData Structure and Algorithms Binary Search Tree
Data Structure and Algorithms Binary Search Tree
 

Andere mochten auch

basics of file handling
basics of file handlingbasics of file handling
basics of file handling
pinkpreet_kaur
 
Array implementation and linked list as datat structure
Array implementation and linked list as datat structureArray implementation and linked list as datat structure
Array implementation and linked list as datat structure
Tushar Aneyrao
 

Andere mochten auch (20)

Single linked list
Single linked listSingle linked list
Single linked list
 
Linked list
Linked listLinked list
Linked list
 
Single linked list
Single linked listSingle linked list
Single linked list
 
linked list
linked list linked list
linked list
 
Link List
Link ListLink List
Link List
 
File Handling In C++(OOPs))
File Handling In C++(OOPs))File Handling In C++(OOPs))
File Handling In C++(OOPs))
 
2CPP17 - File IO
2CPP17 - File IO2CPP17 - File IO
2CPP17 - File IO
 
Lecture 6: linked list
Lecture 6:  linked listLecture 6:  linked list
Lecture 6: linked list
 
Linked list
Linked listLinked list
Linked list
 
Linked List data structure
Linked List data structureLinked List data structure
Linked List data structure
 
basics of file handling
basics of file handlingbasics of file handling
basics of file handling
 
Stream classes in C++
Stream classes in C++Stream classes in C++
Stream classes in C++
 
Parallel Circuits
Parallel CircuitsParallel Circuits
Parallel Circuits
 
Files in c++
Files in c++Files in c++
Files in c++
 
File handling
File handlingFile handling
File handling
 
C++ Files and Streams
C++ Files and Streams C++ Files and Streams
C++ Files and Streams
 
linked list
linked list linked list
linked list
 
Linked lists
Linked listsLinked lists
Linked lists
 
Array implementation and linked list as datat structure
Array implementation and linked list as datat structureArray implementation and linked list as datat structure
Array implementation and linked list as datat structure
 
File Handling in C++
File Handling in C++File Handling in C++
File Handling in C++
 

Ähnlich wie Linked list

Fundamentals of data structures
Fundamentals of data structuresFundamentals of data structures
Fundamentals of data structures
Niraj Agarwal
 
C++ please put everthing after you answer it- thanks Complete the stub.docx
C++ please put everthing after you answer it- thanks Complete the stub.docxC++ please put everthing after you answer it- thanks Complete the stub.docx
C++ please put everthing after you answer it- thanks Complete the stub.docx
MatthPYNashd
 
This assignment and the next (#5) involve design and development of a.pdf
This assignment and the next (#5) involve design and development of a.pdfThis assignment and the next (#5) involve design and development of a.pdf
This assignment and the next (#5) involve design and development of a.pdf
EricvtJFraserr
 
Data structure and algorithms chapter three LINKED LIST
Data structure and algorithms chapter three LINKED LISTData structure and algorithms chapter three LINKED LIST
Data structure and algorithms chapter three LINKED LIST
binakasehun2026
 
Use C++ Write a function to merge two doubly linked lists. The input.pdf
Use C++ Write a function to merge two doubly linked lists. The input.pdfUse C++ Write a function to merge two doubly linked lists. The input.pdf
Use C++ Write a function to merge two doubly linked lists. The input.pdf
shalins6
 
Data Structures in C++I am really new to C++, so links are really .pdf
Data Structures in C++I am really new to C++, so links are really .pdfData Structures in C++I am really new to C++, so links are really .pdf
Data Structures in C++I am really new to C++, so links are really .pdf
rohit219406
 

Ähnlich wie Linked list (20)

Unit II Data Structure 2hr topic - List - Operations.pptx
Unit II  Data Structure 2hr topic - List - Operations.pptxUnit II  Data Structure 2hr topic - List - Operations.pptx
Unit II Data Structure 2hr topic - List - Operations.pptx
 
Unit 5 linked list
Unit   5 linked listUnit   5 linked list
Unit 5 linked list
 
Unit7 C
Unit7 CUnit7 C
Unit7 C
 
Data Structures_Linked List
Data Structures_Linked ListData Structures_Linked List
Data Structures_Linked List
 
UNIT 3a.pptx
UNIT 3a.pptxUNIT 3a.pptx
UNIT 3a.pptx
 
Lec-4_Linked-List (1).pdf
Lec-4_Linked-List (1).pdfLec-4_Linked-List (1).pdf
Lec-4_Linked-List (1).pdf
 
Linked list1.ppt
Linked list1.pptLinked list1.ppt
Linked list1.ppt
 
DS Unit 2.ppt
DS Unit 2.pptDS Unit 2.ppt
DS Unit 2.ppt
 
Fundamentals of data structures
Fundamentals of data structuresFundamentals of data structures
Fundamentals of data structures
 
C++ please put everthing after you answer it- thanks Complete the stub.docx
C++ please put everthing after you answer it- thanks Complete the stub.docxC++ please put everthing after you answer it- thanks Complete the stub.docx
C++ please put everthing after you answer it- thanks Complete the stub.docx
 
Data structure
 Data structure Data structure
Data structure
 
Linked list
Linked listLinked list
Linked list
 
This assignment and the next (#5) involve design and development of a.pdf
This assignment and the next (#5) involve design and development of a.pdfThis assignment and the next (#5) involve design and development of a.pdf
This assignment and the next (#5) involve design and development of a.pdf
 
Data structure and algorithms chapter three LINKED LIST
Data structure and algorithms chapter three LINKED LISTData structure and algorithms chapter three LINKED LIST
Data structure and algorithms chapter three LINKED LIST
 
Linked List.pptx
Linked List.pptxLinked List.pptx
Linked List.pptx
 
Linked list.docx
Linked list.docxLinked list.docx
Linked list.docx
 
Use C++ Write a function to merge two doubly linked lists. The input.pdf
Use C++ Write a function to merge two doubly linked lists. The input.pdfUse C++ Write a function to merge two doubly linked lists. The input.pdf
Use C++ Write a function to merge two doubly linked lists. The input.pdf
 
Data Structures in C++I am really new to C++, so links are really .pdf
Data Structures in C++I am really new to C++, so links are really .pdfData Structures in C++I am really new to C++, so links are really .pdf
Data Structures in C++I am really new to C++, so links are really .pdf
 
linkedlist.pptx
linkedlist.pptxlinkedlist.pptx
linkedlist.pptx
 
Funddamentals of data structures
Funddamentals of data structuresFunddamentals of data structures
Funddamentals of data structures
 

Mehr von Md. Afif Al Mamun (9)

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

Kürzlich hochgeladen

VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Dr.Costas Sachpazis
 

Kürzlich hochgeladen (20)

Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Glass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesGlass Ceramics: Processing and Properties
Glass Ceramics: Processing and Properties
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
 

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.