Queue Implementation
import java.util.LinkedList;
class GenQueue
{
private LinkedList list = new LinkedList();
public void enqueue(E item)
{
list.addLast(item);
}
public E dequeue()
{
return list.poll();
}
public boolean hasItems()
{
return !list.isEmpty();
}
public int size()
{
return list.size();
}
public void addItems(GenQueue q)
{
while (q.hasItems())
list.addLast(q.dequeue());
}
}
public class GenQueueTest
{
public static void main(String[] args)
{
GenQueue empList;
empList = new GenQueue();
GenQueue hList;
hList = new GenQueue();
hList.enqueue(new HourlyEmployee("T", "D"));
hList.enqueue(new HourlyEmployee("G", "B"));
hList.enqueue(new HourlyEmployee("F", "S"));
empList.addItems(hList);
System.out.println("The employees' names are:");
while (empList.hasItems())
{
Employee emp = empList.dequeue();
System.out.println(emp.firstName + " "
+ emp.lastName);
}
}
}
class Employee
{
public String lastName;
public String firstName;
public Employee(){}
public Employee(String last, String first)
{
this.lastName = last;
this.firstName = first;
}
public String toString()
{
return firstName + " " + lastName;
}
}
class HourlyEmployee extends Employee
{
public double hourlyRate;
public HourlyEmployee(String last, String first)
{
super(last, first);
}
}
String reversal using stack
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);
}
}
}
No comments:
Post a Comment