Advertisement
dzocesrce

[APS] APS Course

Aug 27th, 2023 (edited)
342
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.12 KB | None | 0 0
  1. // 2021 prv kolokvium - termin 2
  2. import java.util.Scanner;
  3.  
  4. class Student {
  5.     private int indeks;
  6.     private String ime;
  7.     private int poeni;
  8.  
  9.     public Student(int indeks, String ime, int poeni) {
  10.         this.indeks = indeks;
  11.         this.ime = ime;
  12.         this.poeni = poeni;
  13.     }
  14.  
  15.     public int getIndeks() {
  16.         return indeks;
  17.     }
  18.  
  19.     public void setIndeks(int indeks) {
  20.         this.indeks = indeks;
  21.     }
  22.  
  23.     public String getIme() {
  24.         return ime;
  25.     }
  26.  
  27.     public void setIme(String ime) {
  28.         this.ime = ime;
  29.     }
  30.  
  31.     public int getPoeni() {
  32.         return poeni;
  33.     }
  34.  
  35.     public void setPoeni(int poeni) {
  36.         this.poeni = poeni;
  37.     }
  38.  
  39.     @Override
  40.     public String toString() {
  41.         return String.valueOf(ime);
  42.     }
  43. }
  44.  
  45. class SLLNode<E> {
  46.     protected E element;
  47.     protected SLLNode<E> succ;
  48.  
  49.     public SLLNode(E elem, SLLNode<E> succ) {
  50.         this.element = elem;
  51.         this.succ = succ;
  52.     }
  53.  
  54.     @Override
  55.     public String toString() {
  56.         return element.toString();
  57.     }
  58. }
  59.  
  60. class SLL<E> {
  61.     private SLLNode<E> first;
  62.  
  63.     public SLL() {
  64.         this.first = null;
  65.     }
  66.  
  67.     public void deleteList() {
  68.         first = null;
  69.     }
  70.  
  71.     public int length() {
  72.         int ret;
  73.         if (first != null) {
  74.             SLLNode<E> tmp = first;
  75.             ret = 1;
  76.             while (tmp.succ != null) {
  77.                 tmp = tmp.succ;
  78.                 ret++;
  79.             }
  80.             return ret;
  81.         } else
  82.             return 0;
  83.  
  84.     }
  85.  
  86.     @Override
  87.     public String toString() {
  88.         String ret = new String();
  89.         if (first != null) {
  90.             SLLNode<E> tmp = first;
  91.             ret += tmp;
  92.             while (tmp.succ != null) {
  93.                 tmp = tmp.succ;
  94.                 ret += " " + tmp;
  95.             }
  96.         } else
  97.             ret = "Prazna lista!!!";
  98.         return ret;
  99.     }
  100.  
  101.     public void insertFirst(E o) {
  102.         SLLNode<E> ins = new SLLNode<E>(o, first);
  103.         first = ins;
  104.     }
  105.  
  106.     public void insertAfter(E o, SLLNode<E> node) {
  107.         if (node != null) {
  108.             SLLNode<E> ins = new SLLNode<E>(o, node.succ);
  109.             node.succ = ins;
  110.         } else {
  111.             System.out.println("Dadenot jazol e null");
  112.         }
  113.     }
  114.  
  115.     public void insertBefore(E o, SLLNode<E> before) {
  116.         if (first != null) {
  117.             SLLNode<E> tmp = first;
  118.             if (first == before) {
  119.                 this.insertFirst(o);
  120.                 return;
  121.             }
  122.             while (tmp.succ != before)
  123.                 tmp = tmp.succ;
  124.             if (tmp.succ == before) {
  125.                 SLLNode<E> ins = new SLLNode<E>(o, before);
  126.                 tmp.succ = ins;
  127.             } else {
  128.                 System.out.println("Elementot ne postoi vo listata");
  129.             }
  130.         } else {
  131.             System.out.println("Listata e prazna");
  132.         }
  133.     }
  134.  
  135.     public void insertLast(E o) {
  136.         if (first != null) {
  137.             SLLNode<E> tmp = first;
  138.             while (tmp.succ != null)
  139.                 tmp = tmp.succ;
  140.             SLLNode<E> ins = new SLLNode<E>(o, null);
  141.             tmp.succ = ins;
  142.         } else {
  143.             insertFirst(o);
  144.         }
  145.     }
  146.  
  147.     public E deleteFirst() {
  148.         if (first != null) {
  149.             SLLNode<E> tmp = first;
  150.             first = first.succ;
  151.             return tmp.element;
  152.         } else {
  153.             System.out.println("Listata e prazna");
  154.             return null;
  155.         }
  156.     }
  157.  
  158.     public E delete(SLLNode<E> node) {
  159.         if (first != null) {
  160.             SLLNode<E> tmp = first;
  161.             if (first == node) {
  162.                 return this.deleteFirst();
  163.             }
  164.             while (tmp.succ != node && tmp.succ.succ != null)
  165.                 tmp = tmp.succ;
  166.             if (tmp.succ == node) {
  167.                 tmp.succ = tmp.succ.succ;
  168.                 return node.element;
  169.             } else {
  170.                 System.out.println("Elementot ne postoi vo listata");
  171.                 return null;
  172.             }
  173.         } else {
  174.             System.out.println("Listata e prazna");
  175.             return null;
  176.         }
  177.     }
  178.  
  179.     public SLLNode<E> getFirst() {
  180.         return first;
  181.     }
  182.  
  183.     public SLLNode<E> find(E o) {
  184.         if (first != null) {
  185.             SLLNode<E> tmp = first;
  186.             while (tmp.element != o && tmp.succ != null)
  187.                 tmp = tmp.succ;
  188.             if (tmp.element == o) {
  189.                 return tmp;
  190.             } else {
  191.                 System.out.println("Elementot ne postoi vo listata");
  192.             }
  193.         } else {
  194.             System.out.println("Listata e prazna");
  195.         }
  196.         return first;
  197.     }
  198. }
  199. public class APSCourse {
  200.     public static void remove_student(SLL<Student> aps_course){
  201.         SLLNode<Student> temp= aps_course.getFirst();
  202.         int least_poeni= temp.element.getPoeni();
  203.         int worst_student= temp.element.getIndeks();
  204.         temp=temp.succ;
  205.         while(temp!=null){
  206.             if(temp.element.getPoeni()<least_poeni){
  207.                 least_poeni=temp.element.getPoeni();
  208.                 worst_student= temp.element.getIndeks();
  209.             }
  210.             temp=temp.succ;
  211.         }
  212.         temp= aps_course.getFirst();
  213.         while(true){
  214.             if(temp.element.getIndeks()==worst_student){
  215.                 aps_course.delete(temp);
  216.                 break;
  217.             }
  218.             temp=temp.succ;
  219.         }
  220.     }
  221.     public static void main(String[] args) {
  222.         Scanner input= new Scanner(System.in);
  223.         int n= Integer.parseInt(input.nextLine());
  224.         SLL<Student> aps_course= new SLL<Student>();
  225.         for(int i=0;i<n;i++){
  226.             String[] student= input.nextLine().split("\\s+");
  227.             aps_course.insertLast(new Student(Integer.parseInt(student[0]),student[1],Integer.parseInt(student[2])));
  228.         }
  229.         remove_student(aps_course);
  230.         System.out.println(aps_course);
  231.     }
  232. }
  233. /*
  234. 6
  235. 201182 KingDzoce 77
  236. 201117 Adminot 89
  237. 201155 TOMI 56
  238. 211196 Nono 0
  239. 201146 SaveAFile 51
  240. 201038 OG 107
  241.  
  242. KingDzoce Adminot TOMI SaveAFile OG
  243.  */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement