Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package domein;
- /**
- *
- * @author N. Slaats
- */
- public class MyQueue {
- //attributen -- zie UML
- private Object[] data;
- private int k;
- private int s;
- //methoden
- //de constructor
- public MyQueue(int n) {
- data = new Object[n];
- k = -1;
- s = -1;
- }
- //de methode empty
- //controle of de wachtrij al dan niet leeg is
- public boolean empty() {
- return (k == -1);
- }
- //de methode enqueue
- //een element toevoegen aan een wachtrij
- //dynamische oplossingsmethode (oefening 4)
- public void enqueue(Object x) {
- int n = data.length;
- if (empty()) {
- k = 0;
- s = 0;
- } else {
- if ((s + 1) % n == k) {
- Object[] origineel = data;
- data = new Object[2 * n];
- for (int i = 0; i < n; i++) {
- data[i] = origineel[(k + i) % n];
- }
- k = 0;
- s = n;
- } else {
- s = (s + 1) % n;
- }
- }
- data[s] = x;
- }
- //de methode dequeue
- //een element van een wachtrij verwijderen en weergeven
- public Object dequeue() {
- Object x = data[k];
- int n = data.length;
- if (k == s) {
- k = -1;
- s = -1;
- } else {
- k = (k + 1) % n;
- }
- return x;
- }
- //de methode front
- //het element aan de kop weergeven
- public Object front() {
- return data[k];
- }
- //de methode size
- //de grootte van de wachtrij weergeven (oefening 3)
- public int size() {
- int size;
- int n = data.length;
- if (!empty()) {
- if (s < k) {
- size = (s + n) - k + 1;
- } else {
- size = s - k + 1;
- }
- } else {
- size = 0;
- }
- return size;
- }
- //de methode printQueue
- //de elementen van de wachtrij afdrukken te beginnen bij de kop
- //handig om de methodes te testen
- public String printQueue() {
- if (empty()) {
- return "leeg";
- }
- String uitvoer = "";
- int n = data.length;
- int i = k;
- while (i != s) {
- uitvoer += data[i] + " ";
- i = (i + 1) % n;
- }
- uitvoer += data[s] + " ";
- return uitvoer;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement