SHARE
TWEET

Untitled

a guest Nov 19th, 2019 82 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top