diff --git a/Stack/ReverseStringUsingStack.java b/Stack/ReverseStringUsingStack.java new file mode 100644 index 0000000..11c928d --- /dev/null +++ b/Stack/ReverseStringUsingStack.java @@ -0,0 +1,55 @@ +import java.io.IOException; + +public class StringReverserThroughStack { + private String input; + private String output; + public StringReverserThroughStack(String in) { + input = in; + } + public String doRev() { + int stackSize = input.length(); + Stack theStack = new Stack(stackSize); + + for (int i = 0; i < input.length(); i++) { + char ch = input.charAt(i); + theStack.push(ch); + } + output = ""; + while (!theStack.isEmpty()) { + char ch = theStack.pop(); + output = output + ch; + } + return output; + } + public static void main(String[] args) throws IOException { + String input = "Java Source and Support"; + String output; + StringReverserThroughStack theReverser = + new StringReverserThroughStack(input); + output = theReverser.doRev(); + System.out.println("Reversed: " + output); + } + class Stack { + private int maxSize; + private char[] stackArray; + private int top; + + public Stack(int max) { + maxSize = max; + stackArray = new char[maxSize]; + top = -1; + } + public void push(char j) { + stackArray[++top] = j; + } + public char pop() { + return stackArray[top--]; + } + public char peek() { + return stackArray[top]; + } + public boolean isEmpty() { + return (top == -1); + } + } +}