Advertisement
Guest User

Untitled

a guest
Mar 1st, 2015
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. //inv : size >= 0
  2. public class ArrayQueueModule {
  3.  
  4.  
  5. private final static int MAX_SIZE = 6;
  6. private static Object[] elements = new Object[MAX_SIZE];
  7. private static int head = 0;
  8. private static int tail = -1;
  9. private static int size = 0;
  10.  
  11. //pre: size > 0
  12. //post: return first element in queue
  13. public static Object element() {
  14. assert size() > 0;
  15.  
  16. return elements[head];
  17. }
  18.  
  19. //pre: size > 0
  20. //post: return first element in queue, remove it from queue
  21. public static Object dequeue() {
  22. assert size > 0;
  23. size --;
  24. return elements[(head++) % elements.length];
  25. }
  26.  
  27. //pre: true
  28. //post: return size == 0
  29. public static boolean isEmpty() {
  30. return size == 0;
  31. }
  32.  
  33. //pre: true
  34. //post: return count of elements in queue
  35. public static int size() {
  36. return size;
  37. }
  38.  
  39. //pre: true
  40. //post: element() = e
  41. public static void enqueue(java.lang.Object e) {
  42. ensureCapasity(size + 1);
  43. size++;
  44. elements[++tail % elements.length] = e;
  45. }
  46.  
  47. //pre: true
  48. //post: size == 0
  49. public static void clear() {
  50. size = 0;
  51. head = 0;
  52. tail = -1;
  53. elements = null;
  54. elements = new Object[MAX_SIZE];
  55. }
  56.  
  57.  
  58. //pre: capasity = size
  59. //post: if (capasity > elements.length) elements.length = 2 * elements.length
  60. private static void ensureCapasity(int capacity) {
  61. if (capacity <= elements.length) {
  62. return;
  63. }
  64. Object[] temp = new Object[2 * elements.length];
  65. for (int i = head; i < head + size; i++) {
  66. temp[i - head] = elements[i % elements.length];
  67. }
  68.  
  69. elements = null;
  70. elements = temp;
  71. temp = null;
  72. head = 0;
  73. tail = size - 1;
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement