Advertisement
metalni

APS Labs 4 Salterot na MVR

Nov 14th, 2020 (edited)
1,565
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.33 KB | None | 0 0
  1. import java.util.NoSuchElementException;
  2. import java.util.Scanner;
  3.  
  4. class SLLNode<E> {
  5.     protected E element;
  6.     protected SLLNode<E> succ;
  7.  
  8.     public SLLNode(E elem, SLLNode<E> succ) {
  9.         this.element = elem;
  10.         this.succ = succ;
  11.     }
  12.  
  13.     @Override
  14.     public String toString() {
  15.         return element.toString();
  16.     }
  17. }
  18.  
  19. interface Queue<E> {
  20.     public boolean isEmpty ();
  21.     public int size ();
  22.     public E peek ();
  23.     public void clear ();
  24.     public void enqueue (E x);
  25.     public E dequeue ();
  26. }
  27.  
  28. class LinkedQueue<E> implements Queue<E> {
  29.     SLLNode<E> front, rear;
  30.     int length;
  31.  
  32.     public LinkedQueue () {
  33.         clear();
  34.     }
  35.  
  36.     public boolean isEmpty () {
  37.         return (length == 0);
  38.     }
  39.  
  40.     public int size () {
  41.         return length;
  42.     }
  43.  
  44.     public E peek () {
  45.         if (front == null)
  46.             throw new NoSuchElementException();
  47.         return front.element;
  48.     }
  49.  
  50.     public void clear () {
  51.         // Ja prazni redicata.
  52.         front = rear = null;
  53.         length = 0;
  54.     }
  55.  
  56.     public void enqueue (E x) {
  57.         SLLNode<E> latest = new SLLNode<E>(x, null);
  58.         if (rear != null) {
  59.             rear.succ = latest;
  60.             rear = latest;
  61.         } else
  62.             front = rear = latest;
  63.         length++;
  64.     }
  65.  
  66.     public E dequeue () {
  67.         if (front != null) {
  68.             E frontmost = front.element;
  69.             front = front.succ;
  70.             if (front == null)  rear = null;
  71.             length--;
  72.             return frontmost;
  73.         } else
  74.             throw new NoSuchElementException();
  75.     }
  76.  
  77. }
  78.  
  79.  
  80. class Gragjanin{
  81.     private String imePrezime;
  82.     private int lKarta;
  83.     private int pasos;
  84.     private int vozacka;
  85.  
  86.     public Gragjanin(String imePrezime, int lKarta, int pasos, int vozacka) {
  87.         this.imePrezime = imePrezime;
  88.         this.lKarta = lKarta;
  89.         this.pasos = pasos;
  90.         this.vozacka = vozacka;
  91.     }
  92.  
  93.     public String getImePrezime() {
  94.         return imePrezime;
  95.     }
  96.  
  97.     public int getlKarta() {
  98.         return lKarta;
  99.     }
  100.  
  101.     public int getPasos() {
  102.         return pasos;
  103.     }
  104.  
  105.     public int getVozacka() {
  106.         return vozacka;
  107.     }
  108.  
  109.     public void setlKarta(int lKarta) {
  110.         this.lKarta = lKarta;
  111.     }
  112.  
  113.     public void setPasos(int pasos) {
  114.         this.pasos = pasos;
  115.     }
  116.  
  117.     public void setVozacka(int vozacka) {
  118.         this.vozacka = vozacka;
  119.     }
  120. }
  121.  
  122. public class MVR {
  123.  
  124.     public static void checkFirst(Gragjanin [] ppl){
  125.         LinkedQueue<Gragjanin> lKarti = new LinkedQueue<Gragjanin>();
  126.         LinkedQueue<Gragjanin> pasosi = new LinkedQueue<Gragjanin>();
  127.         LinkedQueue<Gragjanin> vozacki = new LinkedQueue<Gragjanin>();
  128.  
  129.         for(int i=0; i<ppl.length; i++){
  130.             if(ppl[i].getlKarta() == 1)
  131.                 lKarti.enqueue(ppl[i]);
  132.             else if(ppl[i].getPasos() == 1)
  133.                 pasosi.enqueue(ppl[i]);
  134.             else if(ppl[i].getVozacka() == 1)
  135.                 vozacki.enqueue(ppl[i]);
  136.         }
  137.  
  138.         while(!lKarti.isEmpty()){
  139.                 if(lKarti.peek().getPasos() == 1)
  140.                     pasosi.enqueue(lKarti.dequeue());
  141.                 else if(lKarti.peek().getVozacka() == 1)
  142.                     vozacki.enqueue(lKarti.dequeue());
  143.                 else
  144.                     System.out.println(lKarti.dequeue().getImePrezime());
  145.         }
  146.  
  147.  
  148.         while(!pasosi.isEmpty()){
  149.             if(pasosi.peek().getVozacka() == 1)
  150.                 vozacki.enqueue(pasosi.dequeue());
  151.             else
  152.                 System.out.println(pasosi.dequeue().getImePrezime());
  153.         }
  154.  
  155.         while(!vozacki.isEmpty()){
  156.             System.out.println(vozacki.dequeue().getImePrezime());
  157.         }
  158.  
  159.  
  160.     }
  161.  
  162.     public static void main(String[] args) {
  163.  
  164.         Scanner br = new Scanner(System.in);
  165.         int N = Integer.parseInt(br.nextLine());
  166.         Gragjanin covek[] = new Gragjanin[N];
  167.         for (int i = 0; i < N; i++) {
  168.             String imePrezime = br.nextLine();
  169.             int lKarta = Integer.parseInt(br.nextLine());
  170.             int pasos = Integer.parseInt(br.nextLine());
  171.             int vozacka = Integer.parseInt(br.nextLine());
  172.             covek[i] = new Gragjanin(imePrezime, lKarta, pasos, vozacka);
  173.         }
  174.         checkFirst(covek);
  175.     }
  176. }
  177.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement