Lets' imagine, there is no Queue functionality (First In - First Out) present in the Java library, and if you were asked to implement Queue functionality, how would you do that?
I am here with java code for the Queue functionality implementation.
1. Queue.java
2. QueueImpl.java
I am here with java code for the Queue functionality implementation.
1. Queue.java
package ora.queue;
/**
* @author sateesh
*
*/
public interface Queue {
/**
* @param obj
*/
void enqueue(Object obj);
/**
* @return
*/
Object dequeue();
/**
* @return
*/
int size();
}
/**
* @author sateesh
*
*/
public interface Queue {
/**
* @param obj
*/
void enqueue(Object obj);
/**
* @return
*/
Object dequeue();
/**
* @return
*/
int size();
}
2. QueueImpl.java
package ora.queue;
import ora.stackex.*;
public class QueueImpl implements Queue {
private Stack input;
private Stack output;
public QueueImpl() {
input = new StackImpl();
output = new StackImpl();
}
@Override
public Object dequeue() {
if (input.size() > 0) {
int j = input.size();
for (int i=0; i<j; i++) {
output.push(input.pop());
}
}
if (output.size() == 0)
return null;
return output.pop();
}
@Override
public void enqueue(Object obj) {
if (output.size() == 0) {
input.push(obj);
} else {
int j = output.size();
for (int i=0; i<j; i++)
input.push(output.pop());
input.push(obj);
}
}
@Override
public int size() {
return input.size() == 0 ? output.size() : input.size();
}
}
import ora.stackex.*;
public class QueueImpl implements Queue {
private Stack input;
private Stack output;
public QueueImpl() {
input = new StackImpl();
output = new StackImpl();
}
@Override
public Object dequeue() {
if (input.size() > 0) {
int j = input.size();
for (int i=0; i<j; i++) {
output.push(input.pop());
}
}
if (output.size() == 0)
return null;
return output.pop();
}
@Override
public void enqueue(Object obj) {
if (output.size() == 0) {
input.push(obj);
} else {
int j = output.size();
for (int i=0; i<j; i++)
input.push(output.pop());
input.push(obj);
}
}
@Override
public int size() {
return input.size() == 0 ? output.size() : input.size();
}
}
No comments:
Post a Comment