In this article, we will discuss how to reverse a string using stack operations.
Reverse a String using Stack Data Structure
This program uses stack operations to reverse a word (string). First, we push each character to the stack, then we will pop each char from the stack.
public class ReverseStringUsingStackDS {
public String reverseWord(String word) {
StringBuilder stringBuilder = new StringBuilder();
int size = word.length();
StackArray stack = new StackArray(size);
for(char c : word.toCharArray()){
stack.push(c);
}
while (!stack.isEmpty()) {
stringBuilder.append(stack.pop());
}
return stringBuilder.toString();
}
public static void main(String a[]) {
ReverseStringUsingStackDS mwr = new ReverseStringUsingStackDS();
System.out.println("javaguides == " + mwr.reverseWord("javaguides"));
System.out.println("Java == " + mwr.reverseWord("Java"));
System.out.println("program == " + mwr.reverseWord("program"));
}
class StackArray {
private int stackSize;
private char[] stackArr;
private int top;
/**
* constructor to create stack with size
* @param size
*/
public StackArray(int size) {
this.stackSize = size;
this.stackArr = new char[stackSize];
this.top = -1;
}
/**
* This method adds new entry to the top of the stack
*
* @param entry
* @throws Exception
*/
public void push(char entry) {
this.stackArr[++top] = entry;
}
/**
* This method removes an entry from the top of the stack.
*
* @return
* @throws Exception
*/
public char pop() {
char entry = this.stackArr[top--];
return entry;
}
/**
* This method returns top of the stack without removing it.
*
* @return
*/
public char peek() {
return stackArr[top];
}
/**
* This method returns true if the stack is empty
*
* @return
*/
public boolean isEmpty() {
return (top == -1);
}
/**
* This method returns true if the stack is full
*
* @return
*/
public boolean isFull() {
return (top == stackSize - 1);
}
}
}
Output
javaguides == sediugavaj
Java == avaJ
program == margorp
Comments
Post a Comment
Leave Comment