Advertisement
CezarSalata

DeleteMiddleNtimes

Sep 1st, 2019
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.68 KB | None | 0 0
  1. Даена беше еднострано поврзана листа, се бараше N пати да се избрише средината. Ако листата е со парен број елементи од 2та средишни елементи се брише помалиот, а ако се исти се брише првиот.
  2. Влез: првата линија број на елементи на листата,вториот ред елементите на листата и во третиот ред број колку пати да се избрише средината..
  3.  
  4. import java.io.BufferedReader;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7.  
  8. public class BrisiSredinaNPati {
  9.  
  10.     public static void brisiNPati(SLL<Integer> lista, int brojac){
  11.  
  12.         SLLNode<Integer> temp = lista.getFirst();
  13.  
  14.         if (lista.length() == 1){
  15.             lista.delete(temp);
  16.         }else if(lista.length() == 2){
  17.             SLLNode<Integer> next = lista.getFirst().succ;
  18.             if(lista.getFirst().element < next.element){
  19.                 lista.delete(lista.getFirst());
  20.             }else if(lista.getFirst().element > next.element){
  21.                 lista.delete(next);
  22.             }else{
  23.                 lista.deleteFirst();
  24.             }
  25.         }else {
  26.             for (int k = 0; k <= brojac; k++) {
  27.                 if (lista.length() % 2 != 0) {
  28.                     for (int i = 0; i < lista.length() / 2; i++) {
  29.                         temp = temp.succ;
  30.                         lista.delete(temp);
  31.                     }
  32.                 } else {
  33.                     for (int i = 0; i < ((lista.length() / 2) - 1); i++) {
  34.                         temp = temp.succ;
  35.                         SLLNode<Integer> next = temp.succ;
  36.                         if(temp.element < next.element){
  37.                             lista.delete(temp);
  38.                         }else if(temp.element > next.element){
  39.                             lista.delete(next);
  40.                         }else{
  41.                             lista.delete(temp);
  42.                         }
  43.                     }
  44.                 }
  45.             }
  46.         }
  47.         System.out.println(lista.toString());
  48.     }
  49.  
  50.     public static void main(String[] args) throws IOException {
  51.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  52.         String s = br.readLine();
  53.         Integer n = Integer.parseInt(s);
  54.         s = br.readLine();
  55.         String[] pom = s.split(" ");
  56.  
  57.         SLL<Integer> lista = new SLL<>();
  58.         for(int i = 0; i < n; i++){
  59.             lista.insertLast(Integer.parseInt(pom[i])) ;
  60.         }
  61.  
  62.         brisiNPati(lista,2);
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement