Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.92 KB | None | 0 0
  1. package queue;
  2.  
  3. import java.util.Scanner;
  4. import java.lang.Math;
  5. public class FindMiddle {
  6. private int maxSize;
  7. private String[] queArray;
  8. private int front;
  9. private int rear;
  10. private int nItems;
  11.  
  12. public FindMiddle(int s) { // constructor
  13.  
  14. maxSize = s;
  15. queArray = new String[maxSize];
  16. front = 0;
  17. rear = -1;
  18. nItems = 0;
  19. }
  20.  
  21. // public boolean insert(String st)
  22. // {
  23. // if(isFull()) return false;
  24. // if(rear==maxSize-1) rear=-1;
  25. // rear++;
  26. // queArray[rear]=st;
  27. // nItems++;
  28. // return true;
  29. // }
  30.  
  31. public void insert(String item) {
  32. if (nItems == 0) {
  33. queArray[0] = item;
  34. } else {
  35. int j = nItems;
  36.  
  37. while (j > 0 && queArray[j - 1].length() > item.length()) {
  38. queArray[j] = queArray[j - 1];
  39. j--;
  40. }
  41. queArray[j] = item;
  42. }
  43. nItems++;
  44. }
  45.  
  46. public String remove() { // take item from front of queue
  47. if (isEmpty()) {
  48. return null; // don’t remove if empty
  49. }
  50. String temp = queArray[front];// get value and incr front
  51. front++;
  52. if (front == maxSize) { // deal with wraparound
  53. front = 0;
  54. }
  55. nItems--; // one less item
  56. return temp;
  57. }
  58.  
  59. public String peekFront() { // peek at front of queue
  60.  
  61. return queArray[front];
  62. }
  63.  
  64. public boolean isEmpty() { // true if queue is empty
  65.  
  66. return (nItems == 0);
  67. }
  68.  
  69. public boolean isFull() { // true if queue is full
  70.  
  71. return (nItems == maxSize);
  72. }
  73.  
  74. public int size() { // number of items in queue
  75. return nItems;
  76. }
  77.  
  78. public void printMiddle() {
  79. if (nItems % 2 != 0) {
  80. //System.out.println(queArray[rear / 2]);
  81. System.out.println(queArray[(int)Math.floor(rear/2)]);
  82. } else {
  83. //System.out.println(queArray[rear / 2 + 1]);
  84. System.out.println(queArray[(int)Math.floor(rear/2) + 1]);
  85. }
  86. }
  87. public String middle()
  88. {
  89. int mid = (int)Math.floor(rear/2);
  90. return queArray[mid];
  91. }
  92.  
  93. public static void main(String[] args) {
  94. Scanner scan = new Scanner(System.in);
  95. FindMiddle que = new FindMiddle(4);
  96.  
  97. String cleanInput = "(REMOVE )|(INSERT )";
  98. String checkRegex = "(REMOVE .*)|(INSERT .*)";
  99. boolean stop = false;
  100. while (!que.isFull() &&!stop) {
  101. String input = scan.nextLine();
  102. if(input.equalsIgnoreCase("stop")) {
  103. //System.out.println("stopping");
  104. stop = true;
  105. }
  106. else if(input.matches("REMOVE")) {
  107. //System.out.println("removing");
  108. que.remove();
  109. }
  110. else if(input.matches(checkRegex)) {
  111. input = input.replaceAll(cleanInput, "");
  112. //System.out.println("adding");
  113. que.insert(input);
  114. }
  115. }
  116.  
  117.  
  118. System.out.println("===print as ordered===");
  119. while (!que.isEmpty()) {
  120. System.out.println(que.remove());
  121. }
  122. System.out.println("=====================");
  123. //System.out.println("middle:");
  124. System.out.println("my middle");
  125. que.printMiddle();
  126. System.out.println("your middle");
  127. System.out.println(que.middle());
  128.  
  129. }
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement