Upload files to "OOP/Java/Lab/Week5"
This commit is contained in:
parent
cb924d0b60
commit
8c2e55a281
5 changed files with 413 additions and 0 deletions
111
OOP/Java/Lab/Week5/Stack.java
Normal file
111
OOP/Java/Lab/Week5/Stack.java
Normal file
|
@ -0,0 +1,111 @@
|
|||
import java.util.Scanner;
|
||||
|
||||
class Stack {
|
||||
|
||||
private int maxSize;
|
||||
private int[] stackArray;
|
||||
private int top;
|
||||
|
||||
public Stack(int size) {
|
||||
maxSize = size;
|
||||
stackArray = new int[maxSize];
|
||||
top = -1;
|
||||
}
|
||||
|
||||
public void push(int value) {
|
||||
if (isFull()) {
|
||||
System.out.println("Stack is full");
|
||||
} else {
|
||||
top++;
|
||||
stackArray[top] = value;
|
||||
}
|
||||
}
|
||||
|
||||
public int pop() {
|
||||
if (isEmpty()) {
|
||||
System.out.println("Stack is empty");
|
||||
return -1;
|
||||
} else {
|
||||
return stackArray[top--];
|
||||
}
|
||||
}
|
||||
|
||||
public int peek() {
|
||||
if (isEmpty()) {
|
||||
System.out.println("Stack is empty");
|
||||
return -1;
|
||||
} else {
|
||||
return stackArray[top];
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return (top == -1);
|
||||
}
|
||||
|
||||
public boolean isFull() {
|
||||
return (top == maxSize - 1);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Stack stack = new Stack(5);
|
||||
Scanner sc = new Scanner(System.in);
|
||||
int choice;
|
||||
|
||||
do {
|
||||
System.out.println("\nStack Operations:");
|
||||
System.out.println("1. Push");
|
||||
System.out.println("2. Pop");
|
||||
System.out.println("3. Peek");
|
||||
System.out.println("4. Check if empty");
|
||||
System.out.println("5. Check if full");
|
||||
System.out.println("0. Exit");
|
||||
System.out.print("Enter your choice: ");
|
||||
|
||||
choice = sc.nextInt();
|
||||
|
||||
switch (choice) {
|
||||
case 1:
|
||||
System.out.print("Enter value to push: ");
|
||||
int value = sc.nextInt();
|
||||
if (stack.isFull()) {
|
||||
System.out.println(
|
||||
"Cannot push anymore. Stack is full."
|
||||
);
|
||||
} else {
|
||||
stack.push(value);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (stack.isEmpty()) {
|
||||
System.out.println("Cannot pop. Stack is empty.");
|
||||
} else {
|
||||
int poppedValue = stack.pop();
|
||||
if (poppedValue != -1) {
|
||||
System.out.println("Popped value: " + poppedValue);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
int peekedValue = stack.peek();
|
||||
if (peekedValue != -1) {
|
||||
System.out.println("Top value: " + peekedValue);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
System.out.println("Is stack empty? " + stack.isEmpty());
|
||||
break;
|
||||
case 5:
|
||||
System.out.println("Is stack full? " + stack.isFull());
|
||||
break;
|
||||
case 0:
|
||||
System.out.println("Exiting...");
|
||||
break;
|
||||
default:
|
||||
System.out.println("Invalid choice. Please try again.");
|
||||
}
|
||||
} while (choice != 0);
|
||||
|
||||
sc.close();
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue