import
java.util.Arrays;
class
Stack {
int
top;
int
capacity;
char
[] array;
public
static
Stack createStack(
int
capacity) {
Stack stack =
new
Stack();
stack.capacity = capacity;
stack.top = -
1
;
stack.array =
new
char
[stack.capacity];
return
stack;
}
public
static
boolean
isFull(Stack stack) {
return
stack.top == stack.capacity -
1
;
}
public
static
boolean
isEmpty(Stack stack) {
return
stack.top == -
1
;
}
public
static
void
push(Stack stack,
char
item) {
if
(isFull(stack))
return
;
stack.array[++stack.top] = item;
}
public
static
char
pop(Stack stack) {
if
(isEmpty(stack))
return
'\0'
;
return
stack.array[stack.top--];
}
}
class
ReverseString {
static
void
reverse(
char
str[]) {
int
n = str.length;
Stack stack = Stack.createStack(n);
for
(
int
i =
0
; i < n; i++)
Stack.push(stack, str[i]);
for
(
int
i =
0
; i < n; i++)
str[i] = Stack.pop(stack);
}
public
static
void
main(String[] args) {
char
[] str =
"GeeksQuiz"
.toCharArray();
reverse(str);
System.out.println(
"Reversed string is "
+ Arrays.toString(str));
}
}