Advertisement
Cronck

Компанија Проблем

Jan 22nd, 2018
1,693
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.87 KB | None | 0 0
  1. //Компанија Problem 10 (0 / 1)
  2. //        Податоците за плати на вработените во една компанија привремено се чуваат во еднострано поврзана листа. Во секој јазол од листата се чува единствен ID на вработениот и неговата плата. Потребно е да се отстранат сите вработени со помали плати од даден износ, а остатокот да се прикажат во опаѓачки редослед во однос на ID-то. Во првиот ред од влезот е даден бројот на вработени, потоа наизменично се дадени ID и плата за секој од вработените и во последниот ред е износот во однос на кој ќе се отстрануваат вработените. На излез се печати листа (ID, плата) во опаѓачки редослед според ID на секој од вработените.
  3. //
  4. //        Доколку нема вработени со плата поголема од дадената да се испечати: nema
  5. //
  6. //        Име на класата: SLLKompanija
  7. //
  8. //
  9. //
  10. //
  11. //        package com.company;
  12.  
  13. import java.io.BufferedReader;
  14. import java.io.IOException;
  15. import java.io.InputStreamReader;
  16. import java.util.Iterator;
  17. import java.util.LinkedList;
  18.  
  19. class SLLNode {
  20.     protected int id;
  21.     protected int plata;
  22.     protected SLLNode succ;
  23.  
  24.     public SLLNode(int id,int plata, SLLNode succ) {
  25.         this.id = id;
  26.         this.plata=plata;
  27.         this.succ = succ;
  28.     }
  29. }
  30.  
  31. class SLL {
  32.     private SLLNode first;
  33.  
  34.     public SLL() {
  35.         // Construct an empty SLL
  36.         this.first = null;
  37.     }
  38.  
  39.     public void deleteList() {
  40.         first = null;
  41.     }
  42.  
  43.     public int length() {
  44.         int ret;
  45.         if (first != null) {
  46.             SLLNode tmp = first;
  47.             ret = 1;
  48.             while (tmp.succ != null) {
  49.                 tmp = tmp.succ;
  50.                 ret++;
  51.             }
  52.             return ret;
  53.         } else
  54.             return 0;
  55.  
  56.     }
  57.  
  58.  
  59.     public void insertFirst(int id, int plata) {
  60.         SLLNode ins = new SLLNode(id,plata, first);
  61.         first = ins;
  62.     }
  63.  
  64.     public void insertLast(int id,int plata) {
  65.         if (first != null) {
  66.             SLLNode tmp = first;
  67.             while (tmp.succ != null)
  68.                 tmp = tmp.succ;
  69.             SLLNode ins = new SLLNode(id, plata, null);
  70.             tmp.succ = ins;
  71.         } else {
  72.             insertFirst(id,plata);
  73.         }
  74.     }
  75.  
  76.     public SLLNode getFirst() {
  77.         return first;
  78.     }
  79.  
  80.  
  81.     public SLL brisi_pomali_od(int iznos) {
  82.         SLL novaLista = new SLL();
  83. //        SLLNode temp = first;  Koe first од која листа ?
  84.         /* за оваа финта ќе ти кажам сега
  85.         оваа функција се зема од одреден објет во main, од тука можеш да се повикаш на тој објект со THIS
  86.         */
  87.         SLLNode temp = this.first;//прочитај во маин
  88.         while(temp!=null){// temp никогаш нема да биде null никаде не го бришеш // на овој начин мораш со for и да користиш list.length()
  89.                 if(temp.plata>=iznos){
  90.                     temp = temp.succ;
  91.                     novaLista.insertFirst(temp.id, temp.plata);
  92.  
  93.                 }
  94.                 if(temp.plata<iznos){
  95.                     System.out.println("nema");// овдека ќе ти испечати нема за сите луѓе што имаат помала плата а треба да ти испечати ако нема луге со поголема плата
  96.  
  97.                 }
  98.         }
  99.         return this;//овдека треба да ја вратиш новата листа (lista1)
  100.     }
  101.  
  102.     public SLL sortiraj_opagacki() { // за ова ти реков прочитај сортирачки алгоритам некој за да ти стане јасно, вака нема да работи ама ич
  103. //        SLL lista1 = new SLL();
  104. //        SLLNode temp = first;
  105. //        while(temp!=null){
  106. //            if(lista1.first.id<lista1.first.succ.id){
  107. //                swap(first, first.succ);
  108. //            }
  109. //        }
  110. //        return this;
  111.     }
  112.     public void pecati (SLL lista)
  113.     {
  114.         SLLNode p=lista.first;
  115.         while(p!=null)
  116.         {
  117.             System.out.println(p.id+","+p.plata);
  118.             p=p.succ;
  119.         }
  120.     }
  121.     void swap(SLLNode a, SLLNode b){// swap нема да работи дека SLL ноде има 3 елементи, односно ќе имаш погрешен линк
  122.         SLLNode temp = a;
  123.         a = b;
  124.         b = temp;
  125.     }
  126.  
  127. }
  128. public class Main {
  129.     public static void main(String[] args) throws IOException {
  130.  
  131.         SLL lista1 = new SLL();
  132.         BufferedReader stdin = new BufferedReader(new InputStreamReader(
  133.                 System.in));
  134.         String s = stdin.readLine();
  135.         int N = Integer.parseInt(s);
  136.  
  137.         for (int i = 0; i < N; i++) {
  138.             s=stdin.readLine();
  139.             String s1=stdin.readLine();
  140.             lista1.insertLast(Integer.parseInt(s),Integer.parseInt(s1));
  141.         }
  142.         s = stdin.readLine();
  143.         //нема да можеш со stream дека е нова класата и нема stream implementation
  144.        
  145.  
  146.         // е овдека lista1. = THIS во методот
  147.         lista1=lista1.brisi_pomali_od(Integer.parseInt(s));
  148.         if(lista1!=null)
  149.         {
  150.             lista1=lista1.sortiraj_opagacki();
  151.             lista1.pecati(lista1);
  152.         }
  153.  
  154.     }
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement