Document 11586317

advertisement
1.00 Tutorial #8
1
Agenda
• Quiz 2
• Matrix
• Queue
– What is a queue
– Queue methods
• Stack
– What is a stack
– Stack methods
2
Quiz 2
• Quiz 2: 1.5 hours
• Quiz Review: 1.5 hours
3
Exercise 1: Matrix
•
•
•
•
3x1+2x2=13
5x1+3x2=21
Find the answer for x1, x2 and print out the result;
You can construct a 2x2 matrix A
3 2
5 3
and a 2x1matrix (vector) b
13
21
so that Ax=b, resolve x1, x2;
You can download needed classes (Lecture 22, Matrix.java,
GElim.java) from the web, but you should write your own
main class/method.
4
What is a Stack
• A stack is a type of simple object container
• Objects are inserted and removed in the last-in
first-out (LIFO) fashion
– Think of a stack as a can of tennis balls - the last ball
inserted in the can is the first one taken out
• Methods:
public interface Stack {
public boolean isEmpty();
public void push(Object o);
public Object pop() throws EmptyStackException;
public void clear();
}
5
Stack Methods
• void push(Object item)
– Pushes an item into the stack
– Note that the item can be any object type (String, user-defined
class, etc.)
• Object pop()
– Pops the top item of the stack and returns it to the caller
– Note that what returned is a generic Object
• How do we convert it into the original data type?
• void clear()
– Empty the stack
• boolean isEmpty()
– Return true if the stack is empty and false if otherwise
6
What is a Queue
• A queue is another simple type of object container
• Objects are inserted in and removed from the
queue in the first-in first-out (FIFO) fashion
–
Think of a queue as a waiting line in the toll booth
• Methods
public interface Queue
{
public boolean isEmpty();
public void add(Object o);
public Object remove() throws NoSuchElementException;
public void clear();
}
7
Queue Methods
• void add(Object item)
– Insert an item into the queue
– Note that the item can be any object type (String, user-defined
class, etc.)
• Object remove()
– Remove the first item from the queue and return it to the caller
– If the queue is empty, throw NoSuchElementException
– Note that what is returned is a generic Object
• How do we convert it into the original data type?
• void clear()
– Empty the queue
• boolean isEmpty()
– Return true if the queue is empty and false if otherwise
8
Exercise 2a: ice cream cone queues
sugar
cones
cones in
a queue
with random order
waffle
cones
plain
cones
Your mission: Remove cones from the
random queue and put each one into
the correct cone-type queue
9
Cone Class
Public class Cone {
public static final String sugar = “sugar”;
public static final String plain = “plain”;
public static final String waffle = “waffle”;
String coneType;
public Cone(String coneType) {
this.conType=coneType;}
}
10
2a:Write a method and a main method
public static void sortIceCreamQueue(ArrayQueue originalQ,
ArrayQueue sugarQ, ArrayQueue waffleQ,
ArrayQueue plainQ) {
//write your code here…
…
}
public static void main(String args[]) {
ArrayQueue a = new ArrayQueue();
//adding cones to a in random order
//for instance, sugar, plain, waffle, waffle, sugar
a.add(new Cone(“sugar”)); //….
ArrayQueue s = new ArrayQueue();
ArrayQueue w = new ArrayQueue();
ArrayQueue p = new ArrayQueue();
sortIceCreamQueue(a, s, w, p);
if (a.isEmpty())
System.out.println(“I have finished sorting
the original queue”);
}
11
public static void sortIceCreamQueue(ArrayQueue originalQ,
ArrayQueue sugarQ, ArrayQueue waffleQ,
ArrayQueue plainQ) {
while (!originalQ.isEmpty()) {
Cone c = (Cone)originalQ.remove();
if (c.coneType.equals(sugar))
sugarQ.add(c);
else if (c.coneType.equals(plain))
plainQ.add(c);
else
waffleQ.add(c);
}
}
12
Exercise 2b: ice cream cone stacks
sugar
cones
cones in
a queue
with random order
waffle
cones
plain
cones
Your mission: Remove from
random queue and put into correct
cone-type stack
13
2b:Write a method and a main method
public static void sortIceCreamQueue2(ArrayQueue originalQ,
ArrayStack sugarStack, ArrayStack waffleStack,
ArrayStack plainStack) {
//write your code here…
…
}
public static void main(String args[]) {
ArrayQueue a = new ArrayQueue();
//adding cones to a in random order
//for instance, sugar, plain, waffle, waffle, sugar
ArrayStack s = new ArrayStack();
ArrayStack w = new ArrayStack();
ArrayStack p = new ArrayStack();
sortIceCreamQueue2(a, s, w, p);
if (a.isEmpty())
System.out.println(“I have finished sorting the
original queue”);
}
14
Download