Sitemap

JAVA — STACK-II

Let’s learn implementation of stack using Linked list(java programming language)

3 min readFeb 1, 2023

--

Press enter or click to view image in full size
Photo by Markus Spiske on Unsplash

What is stack?

Press enter or click to view image in full size
Press enter or click to view image in full size
source: CodingPanel.com

Stack Node class:

//stack node class
static class stackNdoe{
//properties of node class
int data;
stackNdoe nextNode;
//constructor of node class
stackNdoe(int data){
this.data=data;
nextNode=null;
}
}

Push method:

//push method
//push method -> it is like insert at first method
void push(int data){
//create new node
stackNdoe newNode=new stackNdoe(data);
if(isEmpty()){
peek=newNode;
}
else{
newNode.nextNode=peek;
peek=newNode;
}
size++;
}

Get Rafia Shaikh | Byte School’s stories in your inbox

Join Medium for free to get updates from this writer.

Pop method:

//pop method
//pop method -> it is like delete at first method
int pop(){
if(isEmpty()){
System.out.println("Underflow: stack is empty");
return -1;
}
else{
stackNdoe tempNode=peek;
peek=tempNode.nextNode;
tempNode.nextNode=null;
stackNdoe deletedNode=tempNode;
size--;
return deletedNode.data;
// System.out.println(head.data+" is deleted.");
}
}

Peek method:

//peek method
int peek(){
return peek.data;
}

isEmpty method:

//isEmpty method
boolean isEmpty(){
return (peek==null);
}

Search method:

//search method
boolean search(int data){
stackNdoe tempNode=peek;
//search node if it exists return it
if(isEmpty()){
System.out.println("Underflow: stack is empty");
return false;
}
else{
while(tempNode!=null){
if(tempNode.data==data)
return true;
else
tempNode=tempNode.nextNode;
}
return false;
}
}

Complete Code

//Java complete code
//main class
public class main {
public static void main(String[] args) {

//object of stack class
stackAsLinkedList s1=new stackAsLinkedList();
int[] array1={11,12,13,14,15};
for(int i : array1){
s1.push(i);
}
System.out.println("Element at peek is : "+s1.peek());
System.out.println("Element deleted is : "+s1.pop());
System.out.println("Element of stacks are : ");
s1.display();
System.out.print("Does 12 exits in stack ? ");
System.out.print(s1.search(12));


}
}
//stack as linked list class
class stackAsLinkedList{
//node class
static class stackNdoe{
//properties of node class
int data;
stackNdoe nextNode;
//constructor of node class
stackNdoe(int data){
this.data=data;
nextNode=null;
}
}
//properties of stack
int size;
stackNdoe peek; //head
//constructor of stack class
stackAsLinkedList(){
peek=null;
size=0;
}
//isEmpty method
boolean isEmpty(){
return (peek==null);
}
//push method -> it is like insert at first method
void push(int data){
//create new node
stackNdoe newNode=new stackNdoe(data);
if(isEmpty()){
peek=newNode;
}
else{
newNode.nextNode=peek;
peek=newNode;
}
size++;
}
//pop method -> it is like delete at first method
int pop(){
if(isEmpty()){
System.out.println("Underflow: stack is empty");
return -1;
}
else{
stackNdoe tempNode=peek;
peek=tempNode.nextNode;
tempNode.nextNode=null;
stackNdoe deletedNode=tempNode;
size--;
return deletedNode.data;
// System.out.println(head.data+" is deleted.");
}
}
//peek method
int peek(){
return peek.data;
}
//search method
boolean search(int data){
stackNdoe tempNode=peek;
//search node if it exists return it
if(isEmpty()){
System.out.println("Underflow: stack is empty");
return false;
}
else{
while(tempNode!=null){
if(tempNode.data==data)
return true;
else
tempNode=tempNode.nextNode;
}
return false;
}
}
//display method
public void display(){
stackNdoe tempNode=peek;
//for(i=1; to size)
//while(tempNode!=null)
while(tempNode!=null){
System.out.println(tempNode.data);
tempNode=tempNode.nextNode;
}
}
}
Press enter or click to view image in full size
output of above code
Press enter or click to view image in full size
Photo by Joe Caione on Unsplash

--

--

Rafia Shaikh | Byte School
Rafia Shaikh | Byte School

Written by Rafia Shaikh | Byte School

Data scientist and teacher passionate about demystifying data. Sharing practical knowledge and insights to help others navigate the world of data.