From c41fbdf778f324fdfa7a8083ad236adfd3ed11e0 Mon Sep 17 00:00:00 2001 From: Suhani Gupta <144280247+suhanigupta23@users.noreply.github.com> Date: Tue, 20 Feb 2024 15:19:24 +0530 Subject: [PATCH] Building normal self stack in java --- Building_normal_stacks.java | 102 ++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 Building_normal_stacks.java diff --git a/Building_normal_stacks.java b/Building_normal_stacks.java new file mode 100644 index 0000000..0f31b55 --- /dev/null +++ b/Building_normal_stacks.java @@ -0,0 +1,102 @@ +import java.io.*; +import java.util.*; + +public class Main { + + public static class CustomStack { + int[] data; + int tos; + //tos taken to recieve the data tos++ and the d[tos]=value + + public CustomStack(int cap) { + data = new int[cap]; + tos = -1; + + } + + int size() { + return tos+1; + + } + + void display() { + for(int i=tos;i>0;i--) + { + System.out.print(data[i]+" "); + } + + System.out.println(); + + } + + void push(int val) { + if(tos==data.length-1) + { + System.out.println("Stack overflow"); + } + else + { + tos++; + data[tos]=val; + } + + } + + int pop() { + if(tos==-1) + { + System.out.println("Stack underflow."); + return -1; + } + else + { + int val=data[tos]; + tos--; + return -1; + } + + } + + int top() { + if(tos==-1) + { + System.out.println("Stack overflow"); + return -1; + } + else + { + int val=data[tos]; + return -1; + } + } + } + + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + int n = Integer.parseInt(br.readLine()); + CustomStack st = new CustomStack(n); + + String str = br.readLine(); + while(str.equals("quit") == false){ + if(str.startsWith("push")){ + int val = Integer.parseInt(str.split(" ")[1]); + st.push(val); + } else if(str.startsWith("pop")){ + int val = st.pop(); + if(val != -1){ + System.out.println(val); + } + } else if(str.startsWith("top")){ + int val = st.top(); + if(val != -1){ + System.out.println(val); + } + } else if(str.startsWith("size")){ + System.out.println(st.size()); + } else if(str.startsWith("display")){ + st.display(); + } + str = br.readLine(); + } + } +}