SlideShare a Scribd company logo
1 of 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!

More Related Content

What's hot

Stacks Implementation and Examples
Stacks Implementation and ExamplesStacks Implementation and Examples
Stacks Implementation and Examples
greatqadirgee4u
 

What's hot (20)

Data Structures - Lecture 9 [Stack & Queue using Linked List]
 Data Structures - Lecture 9 [Stack & Queue using Linked List] Data Structures - Lecture 9 [Stack & Queue using Linked List]
Data Structures - Lecture 9 [Stack & Queue using Linked List]
 
Data Structures (CS8391)
Data Structures (CS8391)Data Structures (CS8391)
Data Structures (CS8391)
 
Polynomial reppresentation using Linkedlist-Application of LL.pptx
Polynomial reppresentation using Linkedlist-Application of LL.pptxPolynomial reppresentation using Linkedlist-Application of LL.pptx
Polynomial reppresentation using Linkedlist-Application of LL.pptx
 
Doubly Linked List
Doubly Linked ListDoubly Linked List
Doubly Linked List
 
Stack and Queue
Stack and Queue Stack and Queue
Stack and Queue
 
Linked list implementation of Queue
Linked list implementation of QueueLinked list implementation of Queue
Linked list implementation of Queue
 
Stacks IN DATA STRUCTURES
Stacks IN DATA STRUCTURESStacks IN DATA STRUCTURES
Stacks IN DATA STRUCTURES
 
Stack
StackStack
Stack
 
Stacks
StacksStacks
Stacks
 
Linked lists
Linked listsLinked lists
Linked lists
 
Data Structures- Part7 linked lists
Data Structures- Part7 linked listsData Structures- Part7 linked lists
Data Structures- Part7 linked lists
 
Binary Search Tree
Binary Search TreeBinary Search Tree
Binary Search Tree
 
Unit I-Data structures stack & Queue
Unit I-Data structures stack & QueueUnit I-Data structures stack & Queue
Unit I-Data structures stack & Queue
 
Queue implementation
Queue implementationQueue implementation
Queue implementation
 
Linked List
Linked ListLinked List
Linked List
 
Stacks Implementation and Examples
Stacks Implementation and ExamplesStacks Implementation and Examples
Stacks Implementation and Examples
 
Singly linked list
Singly linked listSingly linked list
Singly linked list
 
linked list
linked list linked list
linked list
 
Bca ii dfs u-2 linklist,stack,queue
Bca ii  dfs u-2 linklist,stack,queueBca ii  dfs u-2 linklist,stack,queue
Bca ii dfs u-2 linklist,stack,queue
 
Trees (data structure)
Trees (data structure)Trees (data structure)
Trees (data structure)
 

Viewers also liked

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
 

Viewers also liked (20)

Single linked list
Single linked listSingle linked list
Single linked list
 
Linked list
Linked listLinked list
Linked list
 
Linked list
Linked listLinked list
Linked list
 
Single linked list
Single linked listSingle linked list
Single 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++
 

Similar to 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
 

Similar to 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
 
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...
 
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
 
Linked List
Linked ListLinked List
Linked List
 
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
 

More from 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).
 

Recently uploaded

"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
mphochane1998
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
MayuraD1
 
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
HenryBriggs2
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
Epec Engineered Technologies
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Kandungan 087776558899
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
jaanualu31
 
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
Health
 

Recently uploaded (20)

Learn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic MarksLearn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic Marks
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
 
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal load
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects
 
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 

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.