Lab#05 Doubly Linked List
Lab#05 Doubly Linked List
Lab#05 Doubly Linked List
LAB # 05
The purpose of this lab is to implement doubly linked list and associated operations.
Theory
Doubly Linked List is a variation of the linked list. The linked list is a linear data structure
which can be described as the collection of nodes. Nodes are connected through
pointers. Each node contains two fields: data and pointer to the next field. The first node
of the linked list is called the head, and the last node of the list is called the tail of the
list.
One of the limitations of the singly linked list is that it can be traversed in only one
direction that is forward. The doubly linked list has overcome this limitation by providing
an additional pointer that points to the previous node. With the help of the previous
pointer, the doubly linked list can be traversed in a backward direction thus making
insertion and deletion operation easier to perform. So, a typical node in the doubly
linked list consists of three fields:
Nodes store:
o element
o link to the previous node
o link to the next node
Creating a LinkedList
In order to create an empty list, assign
NULL value to start pointer variable.
LinkedList(){
first=NULL; last=NULL;
PredLoc_=NULL; Loc_=NULL;
CE-205: Data Structures and Algorithms Page 24
Lab#05: Doubly Linked List implementation SSUET/QR/114
}
Creating a LinkedList
In order to create an empty list, assign
NULL value to start pointer variable.
LinkedList(){
first=NULL; last=NULL;
PredLoc_=NULL; Loc_=NULL;
}
Creating a LinkedList
In order to create an empty list, assign
NULL value to start pointer variable.
LinkedList(){
first=NULL; last=NULL;
PredLoc_=NULL; Loc_=NULL;
}
Creating a LinkedList
In order to creat
Creating a LinkedList
CE-205: Data Structures and Algorithms Page 25
Lab#05: Doubly Linked List implementation SSUET/QR/114
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
CE-205: Data Structures and Algorithms Page 26
Lab#05: Doubly Linked List implementation SSUET/QR/114
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
CE-205: Data Structures and Algorithms Page 27
Lab#05: Doubly Linked List implementation SSUET/QR/114
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
CE-205: Data Structures and Algorithms Page 28
Lab#05: Doubly Linked List implementation SSUET/QR/114
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
CE-205: Data Structures and Algorithms Page 29
Lab#05: Doubly Linked List implementation SSUET/QR/114
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
CE-205: Data Structures and Algorithms Page 30
Lab#05: Doubly Linked List implementation SSUET/QR/114
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
CE-205: Data Structures and Algorithms Page 31
Lab#05: Doubly Linked List implementation SSUET/QR/114
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
CE-205: Data Structures and Algorithms Page 32
Lab#05: Doubly Linked List implementation SSUET/QR/114
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
CE-205: Data Structures and Algorithms Page 33
Lab#05: Doubly Linked List implementation SSUET/QR/114
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
In order to creat
Creating a LinkedList
CE-205: Data Structures and Algorithms Page 34
Lab#05: Doubly Linked List implementation SSUET/QR/114
In order to creat
Above picture represents a doubly linked list in which each node has two pointers to point to
previous and next node respectively. Here, node 1 represents the head of the list. The previous
pointer of the head node will always point to NULL. Next pointer of node one will point to node
2. Node 5 represents the tail of the list whose previous pointer will point to node 4, and next will
point to NULL.
return newNode
}}
Algorithm to insert node at end
Node deleteDLLAtBeg()
{
Head = head.next;
Head.pre = null
}
Node deleteDLLAtBeg()
{
End = End.pre;
End.next = null
}
Sample Program
import java.util.*;
class Node{
int data;
Node previous;
Node next;
public Node(int data) {
this.data = data;
}
}
public class DoublyLinkedList {
Node head, tail = null;
//addNode() will add a node to the list
public void addNode(int data) {
//Create a new node
Node newNode = new Node(data);
//If list is empty
if(head == null) {
//Both head and tail will point to newNode
head = tail = newNode;
//head's previous will point to null
head.previous = null;
//tail's next will point to null, as it is the last node of the list
tail.next = null;
}
else {
//newNode will be added after tail such that tail's next will point to newNode
tail.next = newNode;
//newNode's previous will point to tail
newNode.previous = tail;
//newNode will become new tail
tail = newNode;
//As it is last node, tail's next will point to null
tail.next = null;
}
}
//display() will print out the nodes of the list
public void display() {
//Node current will point to head
Node current = head;
if(head == null) {
System.out.println("List is empty");
return;
}
System.out.println("Nodes of doubly linked list: ");
while(current != null) {
//Prints each node by incrementing the pointer.
System.out.print(current.data + " ");
current = current.next;
}
}
public static void main(String[] args) {
DoublyLinkedList dList = new DoublyLinkedList();
//Add nodes to the list
dList.addNode(1);
dList.addNode(2);
dList.addNode(3);
dList.addNode(4);
dList.addNode(5);
//Displays the nodes present in the list
dList.display();
}
}
Task
1. Write a program that can insert the records of employees in a link list. The record includes
employee’s name, designation, department and company name. The program should be able to
insert the record as first, last and as middle node in the list and search any record.
2. Write a program to insert the records of students in a Doubly linked list and insert elements at
first and last node
3. Write a program to create Doubly LinkedList and perform any five operations on it.
Home Task