Skip to content

Commit 93b89a5

Browse files
committed
Sorted stack ASC + Desc implimentation,Balanced string checker problems.
1 parent 3ea12ac commit 93b89a5

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.udemy.dsapart1.stacks;
2+
import java.util.Scanner;
3+
import java.util.Stack;
4+
5+
public class StackBalancedStringChecker {
6+
7+
public static void main(String[] args) {
8+
Scanner scInpObj = new Scanner(System.in);
9+
System.out.print("\nEnter the input string : ");
10+
String inputStr = scInpObj.nextLine();
11+
System.out.println("\nCheck is the input string is balanced : "+isStringBalanced(inputStr));
12+
}
13+
14+
private static boolean isStringBalanced(String inputStr) {
15+
Stack<Character> stackDat = new Stack();
16+
for (char chItems : inputStr.toCharArray())
17+
{
18+
if (chItems == '(' || chItems == '{' || chItems == '[') {
19+
stackDat.push(chItems);
20+
}
21+
else if (chItems == ')' || chItems == '}' || chItems == ']')
22+
{
23+
char topCharDat = stackDat.pop();
24+
if ((topCharDat == '(' && chItems != ')') || (topCharDat == '{' && chItems != '}') || (topCharDat == '[' && chItems != ']')) {
25+
return false;
26+
}
27+
}
28+
}
29+
return stackDat.isEmpty();
30+
}
31+
32+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.udemy.dsapart1.stacks;
2+
import java.util.Scanner;
3+
import java.util.Stack;
4+
5+
public class StackSorting {
6+
7+
static Stack<Double> firstStack;
8+
static Stack<Double> secStack;
9+
10+
public static void main(String[] args) {
11+
Scanner scInpObj = new Scanner(System.in);
12+
System.out.print("\nEnter the size of Stack : ");
13+
int sizeOfStack = scInpObj.nextInt();
14+
System.out.println("\nEnter the stack elements : ");
15+
firstStack = new Stack<>();
16+
secStack=new Stack<>();
17+
pushElementsIntoStack(sizeOfStack);
18+
System.out.println("\nInput Stack : " + firstStack);
19+
System.out.println("\nOutput Stack sorted in increasing/ascending order : " +sortStackByAscOrder(firstStack));
20+
System.out.println("\nOutput Stack sorted in dicreasing/descending order : " +sortStackByDescOrder(secStack));
21+
}
22+
23+
24+
private static Stack<Double> sortStackByAscOrder(Stack<Double> firstStack2) {
25+
Stack<Double> tempStack = new Stack<>();
26+
while (!firstStack2.isEmpty()) {
27+
double peekOfSrcStack = firstStack2.pop();
28+
while (!tempStack.isEmpty() && tempStack.peek() > peekOfSrcStack) {
29+
firstStack2.push(tempStack.pop());
30+
}
31+
tempStack.push(peekOfSrcStack);
32+
}
33+
return tempStack;
34+
}
35+
36+
37+
private static Stack<Double> sortStackByDescOrder(Stack<Double> firstStack2) {
38+
Stack<Double> tempStack = new Stack<>();
39+
while (!firstStack2.isEmpty()) {
40+
double peekOfSrcStack = firstStack2.pop();
41+
while (!tempStack.isEmpty() && tempStack.peek() < peekOfSrcStack) {
42+
firstStack2.push(tempStack.pop());
43+
}
44+
tempStack.push(peekOfSrcStack);
45+
}
46+
return tempStack;
47+
}
48+
49+
50+
private static void pushElementsIntoStack(int sizeOfStack) {
51+
Scanner scInp1Obj = new Scanner(System.in);
52+
for (int i = 0; i < sizeOfStack; i++) {
53+
System.out.print("\npush the element No " + (i + 1) + " : ");
54+
double dataItem=scInp1Obj.nextDouble();
55+
firstStack.push(dataItem);
56+
secStack.push(dataItem);
57+
}
58+
}
59+
60+
}

0 commit comments

Comments
 (0)