Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. package domein;
  2.  
  3. /**
  4. *
  5. * @author N. Slaats
  6. */
  7. public class MyQueue {
  8.  
  9. //attributen -- zie UML
  10. private Object[] data;
  11. private int k;
  12. private int s;
  13.  
  14. //methoden
  15. //de constructor
  16. public MyQueue(int n) {
  17. data = new Object[n];
  18. k = -1;
  19. s = -1;
  20. }
  21.  
  22. //de methode empty
  23. //controle of de wachtrij al dan niet leeg is
  24. public boolean empty() {
  25. return (k == -1);
  26. }
  27.  
  28. //de methode enqueue
  29. //een element toevoegen aan een wachtrij
  30. //dynamische oplossingsmethode (oefening 4)
  31. public void enqueue(Object x) {
  32. int n = data.length;
  33. if (empty()) {
  34. k = 0;
  35. s = 0;
  36. } else {
  37. if ((s + 1) % n == k) {
  38. Object[] origineel = data;
  39. data = new Object[2 * n];
  40. for (int i = 0; i < n; i++) {
  41. data[i] = origineel[(k + i) % n];
  42. }
  43. k = 0;
  44. s = n;
  45. } else {
  46. s = (s + 1) % n;
  47. }
  48. }
  49. data[s] = x;
  50. }
  51.  
  52. //de methode dequeue
  53. //een element van een wachtrij verwijderen en weergeven
  54. public Object dequeue() {
  55. Object x = data[k];
  56. int n = data.length;
  57. if (k == s) {
  58. k = -1;
  59. s = -1;
  60. } else {
  61. k = (k + 1) % n;
  62. }
  63. return x;
  64. }
  65.  
  66. //de methode front
  67. //het element aan de kop weergeven
  68. public Object front() {
  69. return data[k];
  70. }
  71.  
  72. //de methode size
  73. //de grootte van de wachtrij weergeven (oefening 3)
  74. public int size() {
  75. int size;
  76. int n = data.length;
  77. if (!empty()) {
  78. if (s < k) {
  79. size = (s + n) - k + 1;
  80. } else {
  81. size = s - k + 1;
  82. }
  83. } else {
  84. size = 0;
  85. }
  86. return size;
  87. }
  88.  
  89. //de methode printQueue
  90. //de elementen van de wachtrij afdrukken te beginnen bij de kop
  91. //handig om de methodes te testen
  92. public String printQueue() {
  93. if (empty()) {
  94. return "leeg";
  95. }
  96. String uitvoer = "";
  97. int n = data.length;
  98. int i = k;
  99. while (i != s) {
  100. uitvoer += data[i] + " ";
  101. i = (i + 1) % n;
  102. }
  103. uitvoer += data[s] + " ";
  104. return uitvoer;
  105. }
  106.  
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement