Welcome to Code Central, your go-to resource for all things networking and coding! Whether you're a beginner looking to learn the basics or an expert seeking advanced techniques, this blog provides insightful articles, tutorials, and tips to help you navigate the world of technology. Stay updated on the latest trends in networking, coding practices, and industry best practices to elevate your skills and keep ahead of the curve.
Here is how to create linked list in java.A linked list is a linear data structure.
Linked List in Java
A linked list is a linear data structure. Linked List is
collection of nodes; nodes are containers having at least two parts: one for
storing data and another for storing address of another node. Linked List is
very flexible kind of data structure; insertion and deletion of any node from
any position is possible, but random access of the nodes is not possible in the
linked list.
The elements in a linked list are linked using
pointers as shown in the below image:
fig:
Linked List
Types:
·SinglyLinked List
·Doubly Linked List
·Circular Linked List
·Doubly Circular Linked List
Singly
Linked List:
It
is the simplest type of linked list in which every node contains some data and
a pointer to the next node of the same data type. The node contains a pointer to
the next node means that the node stores the address of the next node in the
sequence. A single linked list allows traversal of data only in one way.
Creation
of Singly Linked List node in java:
Class SLLNode{
int info;
SLLNode next;
}
Source Code:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package LinkedList;
import java.util.*;
/**
*
* @author AnkeetPC
*/
// inserting and deleting first and last node of SLL
class SLLNode{
int info; //data holder
SLLNode next; // address holder
}
class SLL{
SLLNode first,last;
public void insertAtFirst(int data){
SLLNode newnode = new SLLNode();
newnode.info = data;
if(first == null){
newnode.next = null;
first = newnode;
last = newnode;
}else{
newnode.next = first;
first = newnode;
}
}
public void insertAtEnd(int data){
SLLNode newnode = new SLLNode();
newnode.info = data;
if(first == null){
newnode.next = null;
first = newnode;
last = newnode;
}else{
last.next = newnode;
last = newnode;
}
}
public void deleteAtFirst(){
SLLNode temp = first;
if(first == null){
System.out.println("Empty List");
}else{
first = first.next;
temp.next = null;
}
}
public void deleteAtLast(){
SLLNode temp = first;
if(first == null){
System.out.println("EmptyList");
}else if(first == last){
first = null;
last = null;
}else{
while(temp.next!=last){
temp = temp.next;
}
temp.next= null;
last = temp;
}
}
public void insertAtSpecifiedPos(int data){
int position;
SLLNode newnode = new SLLNode();
SLLNode temp = new SLLNode();
newnode.info = data;
System.out.println("Enter the position: ");
Scanner input = new Scanner(System.in);
position = input.nextInt();
if(first == null){
newnode.next = null;
first = newnode;
last = newnode;
}else{
temp = first;
for(int i=0;i<position-1;i++){
temp =temp.next;
}
newnode.next = temp.next;
temp.next = newnode;
}
}
public void search(int data){
SLLNode temp = first;
int flag = 0;
while(temp!=null){
if(temp.info==data){
flag =1;
System.out.println("Data found: "+temp.info);
}
temp = temp.next;
}
if(flag ==0){
System.out.println("Not found");
}
}
public void display(){
SLLNode temp = first;
if(first == null){
System.out.println("Empty list");
}else{
while(temp.next!=null){
System.out.println(temp.info+"");
temp = temp.next;
}
System.out.println(temp.info+"");
}
}
}
public class SLLDemo {
public static void main(String[] args) {
SLL ob = new SLL();
ob.insertAtFirst(15);
ob.insertAtFirst(20);
ob.insertAtFirst(25);
ob.insertAtEnd(55);
ob.insertAtEnd(35);
ob.insertAtEnd(88);
ob.deleteAtFirst();
ob.deleteAtLast();
// ob.insertAtSpecifiedPos(45);
ob.search(55);
ob.display();
}
}
Doubly
Linked List:
A
doubly linked list or a two-way linked list is a more complex type of linked
list which contains a pointer to the next as well as the previous node in
sequence, Therefore, it contains three parts are data, a pointer to the next
node, and a pointer to the previous node. This would enable us to traverse the
list in the backward direction as well.
Creation
of Doubly Linked List node in java:
Class DLLNode{
int info;
DLLNode next,prev;
}
Source Code:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package LinkedList;
/**
*
* @author AnkeetPC
*/
// inserting and deleting first and last node of DLL
class DLLNode{
int info; // data holder
DLLNode next,prev; //address holder
}
class DLL{
DLLNode first, last;
public void insertAtFirst(int data){
DLLNode newnode = new DLLNode();
newnode.info = data;
if(first == null && last == null){
first = newnode;
last = newnode;
}else{
newnode.next = first;
first.prev = newnode;
first = newnode;
}
}
public void insertAtLasr(int data){
DLLNode newnode = new DLLNode();
newnode.info = data;
if(first == null && last == null){
first = newnode;
last = newnode;
}else{
last.next = newnode;
newnode.prev = last;
last = newnode;
}
}
public void deleteFirst(){
if(first == null && last == null){
System.out.println("Empty List");
}else if(first == last){
first = null;
last = null;
}else{
DLLNode temp = first;
first = first.next;
temp.next = null;
first.prev = null;
}
}
public void deleteLast(){
if(first==null && last == null){
System.out.println("Empty List");
}else if(first == last){
first = null;
last = null;
}else{
DLLNode temp=first;
while(temp.next!=last){
temp = temp.next;
}
temp.next = null;
last = temp;
}
}
public void display(){
DLLNode temp = first;
if(temp == null){
System.out.println("Empty List");
}else{
while(temp!=last.next){
System.out.println(temp.info+"");
temp = temp.next;
}
}
}
}
public class DLLDemo {
public static void main(String[] args) {
DLL ob = new DLL();
ob.insertAtFirst(15);
ob.insertAtFirst(25);
ob.insertAtFirst(45);
ob.insertAtLasr(55);
ob.deleteFirst();
ob.deleteLast();
ob.display();
}
}
Circular
Linked List:
A circular linked list
is that in which the last node contains the pointer to the first node of the
list. While traversing a circular liked list, we can begin at any node and
traverse the list in any direction forward and backward until we reach the same
node we started. Thus, a circular linked list has no beginning and no end.
Creation
of Circular Linked List node in java:
Class CLLNode{
int info;
CLLNode next;
}
Source Code:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package LinkedList;
/**
*
* @author AnkeetPC
*/
// inserting and deleting first and last node from CLL
class CLLNode{
int info; // data holder
CLLNode next; // address holder
}
class CLL{
CLLNode first,last;
public void insertFirst(int data){
CLLNode newnode = new CLLNode(); // node creation
newnode.info = data;
if(first == null){
newnode.next = null;
first = newnode;
last = newnode;
}else{
newnode.next = first;
first = newnode;
last.next = newnode;
}
}
public void insertLast(int data){
CLLNode newnode = new CLLNode(); // node creation
newnode.info = data;
if(first == null){
newnode.next = null;
first = newnode;
last = newnode;
}else{
newnode.next = last.next;
last.next = newnode;
last = newnode;
}
}
public void deleteFirst(){
if(first == null && last == null){
System.out.println("Empty List");
}else if(last == last.next){
last.next= null;
last = null;
}else{
CLLNode temp = first;
first = first.next;
last.next = first;
temp = null;
}
}
public void deleteLast(){
if(first == null && last ==null){
System.out.println("Empty List");
}else if(last == last.next){
last.next = null;
last = null;
}else{
CLLNode temp = first;
while(temp.next!= last){
temp = temp.next;
}
temp.next = first;
last = temp;
}
}
public void display(){
CLLNode temp = first;
if(first == null){
System.out.println("Empty List");
}else{
while(temp.next!=first){
System.out.println(temp.info+"");
temp = temp.next;
}
System.out.println(temp.info+"");
}
}
}
public class CLLDemo {
public static void main(String[] args) {
CLL ob = new CLL();
ob.insertFirst(25);
ob.insertFirst(77);
ob.insertLast(88);
ob.insertLast(89);
ob.deleteFirst();
ob.deleteLast();
ob.display();
}
}
Doubly
Circular Linked List:
A Doubly Circular
linked list or a circular two-way linked list is a more complex type of
linked-list that contains a pointer to the next as well as the previous node in
the sequence. The difference between the doubly linked and circular doubly list
is the same as that between a singly linked list and a circular linked list.
The circular doubly linked list does not contain null in the previous field of
the first node.
Creation
of Doubly Circular Linked List node in java:
Class DCLLNode{
int info;
DCLLNode next,prev;
}
Source Code:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package LinkedList;
/**
*
* @author AnkeetPC
*/
// inserting and deleting first and last node from DCLL
class DCLLNode{
int info; // data holder
DCLLNode prev,next; // adress holder
}
class DCLL{
DCLLNode first,last;
public void insertFirst(int data){
DCLLNode newnode = new DCLLNode(); // node creation
newnode.info = data;
if(first == null && last == null){
newnode.next =newnode;
newnode.prev = newnode;
first = newnode;
last = newnode;
}else{
newnode.next = first;
first.prev =newnode;
first = newnode;
newnode.prev= last;
first.prev = last;
}
}
public void insertLast(int data){
DCLLNode newnode = new DCLLNode(); // node creation
newnode.info = data;
if(first == null && last== null){
newnode.next = newnode;
newnode.prev = newnode;
first = newnode;
last = newnode;
}else{
last.next = newnode;
newnode.next = first;
newnode.prev = last;
first.prev = newnode;
last = newnode;
}
}
public void deleteFirst(){
if(first == null && last == null){
System.out.println("Empty List");
}else if(first == last){
first = null;
last = null;
}else{
DCLLNode temp = first;
first = first.next;
temp.next = null;
first.prev = last;
last.next= first;
}
}
public void deleteLast(){
if(first== null && last == null){
System.out.println("EMpty list");
}else if(first == last){
first = null;
last = null;
}else{
DCLLNode temp =first;
last = last.prev;
temp.prev = null;
first.prev= last;
last.next = first;
}
}
public void display(){
DCLLNode temp = first;
if(first == null){
System.out.println("Empty List");
}else{
do{
System.out.println(temp.info+"");
temp = temp.next;
}while(temp!=last);
System.out.println(temp.info+"");
}
}
}
public class DCLLDemo {
public static void main(String[] args) {
DCLL ob = new DCLL();
ob.insertFirst(88);
ob.insertFirst(101);
ob.insertLast(99);
ob.deleteFirst();
ob.deleteLast();
ob.display();
}
}
Video is available on YouTube . Don't Forget to check out the video.
Rate this article
Visit link
Post a Comment
Ad-Blocker Detected!
Sorry, we detected that you have activated Ad-Blocker. Please consider supporting us by disabling your Ad-Blocker, it helps us in developing this Website. Thank you!