Advertisement
dzocesrce

[APS] Hidden Numbers

Aug 28th, 2023
479
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.31 KB | None | 0 0
  1. //ako cifrata e pogolema od 4, vnesi nov jazol od brojot koj go gradat so soednata cifra i izbrisi gi starite jazli!
  2. import java.util.NoSuchElementException;
  3. import java.util.Scanner;
  4.  
  5. public class HiddenNumbers
  6. {
  7.     public static void find_numbers(SLL<Integer> list){
  8.         SLLNode<Integer> curr= list.getFirst();
  9.         SLLNode<Integer> prev= list.getFirst();
  10.         while(curr!=null){
  11.             curr=prev.succ;
  12.             if(curr==null) break;
  13.             if(prev.element>4){
  14.                 int number= Integer.parseInt(prev.element+""+curr.element);
  15.                 list.insertBefore(number,prev);
  16.                 list.delete(prev);
  17.                 prev=curr;
  18.                 curr=curr.succ;
  19.                 list.delete(prev);
  20.                 prev=curr;
  21.             }
  22.             else{
  23.                 prev=curr;
  24.             }
  25.         }
  26.     }
  27.  
  28.     public static void main(String[] args)
  29.     {
  30.         Scanner input= new Scanner(System.in);
  31.         int n= Integer.parseInt(input.nextLine());
  32.         SLL<Integer> list= new SLL<Integer>();
  33.         String[] cifra= input.nextLine().split("\\s+");
  34.         for(int i=0;i<n;i++){
  35.             list.insertLast(Integer.parseInt(cifra[i]));
  36.         }
  37.         find_numbers(list);
  38.         System.out.println(list.toString());
  39.     }
  40. }
  41.  
  42.  
  43.  
  44. class SLLNode<E> {
  45.     protected E element;
  46.     protected SLLNode<E> succ;
  47.  
  48.     public SLLNode(E elem, SLLNode<E> succ) {
  49.         this.element = elem;
  50.         this.succ = succ;
  51.     }
  52.  
  53.     @Override
  54.     public String toString() {
  55.         return element.toString();
  56.     }
  57. }
  58.  
  59. class SLL<E> {
  60.     private SLLNode<E> first;
  61.  
  62.     public SLL() {
  63.         this.first = null;
  64.     }
  65.  
  66.     public void deleteList() {
  67.         first = null;
  68.     }
  69.  
  70.     public int length() {
  71.         int ret;
  72.         if (first != null) {
  73.             SLLNode<E> tmp = first;
  74.             ret = 1;
  75.             while (tmp.succ != null) {
  76.                 tmp = tmp.succ;
  77.                 ret++;
  78.             }
  79.             return ret;
  80.         } else
  81.             return 0;
  82.  
  83.     }
  84.  
  85.     @Override
  86.     public String toString() {
  87.         String ret = new String();
  88.         if (first != null) {
  89.             SLLNode<E> tmp = first;
  90.             ret += tmp;
  91.             while (tmp.succ != null) {
  92.                 tmp = tmp.succ;
  93.                 ret += " " + tmp;
  94.             }
  95.         } else
  96.             ret = "Prazna lista!!!";
  97.         return ret;
  98.     }
  99.  
  100.     public void insertFirst(E o) {
  101.         SLLNode<E> ins = new SLLNode<E>(o, first);
  102.         first = ins;
  103.     }
  104.  
  105.     public void insertAfter(E o, SLLNode<E> node) {
  106.         if (node != null) {
  107.             SLLNode<E> ins = new SLLNode<E>(o, node.succ);
  108.             node.succ = ins;
  109.         } else {
  110.             System.out.println("Dadenot jazol e null");
  111.         }
  112.     }
  113.  
  114.     public void insertBefore(E o, SLLNode<E> before) {
  115.         if (first != null) {
  116.             SLLNode<E> tmp = first;
  117.             if (first == before) {
  118.                 this.insertFirst(o);
  119.                 return;
  120.             }
  121.             while (tmp.succ != before)
  122.                 tmp = tmp.succ;
  123.             if (tmp.succ == before) {
  124.                 SLLNode<E> ins = new SLLNode<E>(o, before);
  125.                 tmp.succ = ins;
  126.             } else {
  127.                 System.out.println("Elementot ne postoi vo listata");
  128.             }
  129.         } else {
  130.             System.out.println("Listata e prazna");
  131.         }
  132.     }
  133.  
  134.     public void insertLast(E o) {
  135.         if (first != null) {
  136.             SLLNode<E> tmp = first;
  137.             while (tmp.succ != null)
  138.                 tmp = tmp.succ;
  139.             SLLNode<E> ins = new SLLNode<E>(o, null);
  140.             tmp.succ = ins;
  141.         } else {
  142.             insertFirst(o);
  143.         }
  144.     }
  145.  
  146.     public E deleteFirst() {
  147.         if (first != null) {
  148.             SLLNode<E> tmp = first;
  149.             first = first.succ;
  150.             return tmp.element;
  151.         } else {
  152.             System.out.println("Listata e prazna");
  153.             return null;
  154.         }
  155.     }
  156.  
  157.     public E delete(SLLNode<E> node) {
  158.         if (first != null) {
  159.             SLLNode<E> tmp = first;
  160.             if (first == node) {
  161.                 return this.deleteFirst();
  162.             }
  163.             while (tmp.succ != node && tmp.succ.succ != null)
  164.                 tmp = tmp.succ;
  165.             if (tmp.succ == node) {
  166.                 tmp.succ = tmp.succ.succ;
  167.                 return node.element;
  168.             } else {
  169.                 System.out.println("Elementot ne postoi vo listata");
  170.                 return null;
  171.             }
  172.         } else {
  173.             System.out.println("Listata e prazna");
  174.             return null;
  175.         }
  176.     }
  177.  
  178.     public SLLNode<E> getFirst() {
  179.         return first;
  180.     }
  181.  
  182.     public SLLNode<E> find(E o) {
  183.         if (first != null) {
  184.             SLLNode<E> tmp = first;
  185.             while (tmp.element != o && tmp.succ != null)
  186.                 tmp = tmp.succ;
  187.             if (tmp.element == o) {
  188.                 return tmp;
  189.             } else {
  190.                 System.out.println("Elementot ne postoi vo listata");
  191.             }
  192.         } else {
  193.             System.out.println("Listata e prazna");
  194.         }
  195.         return first;
  196.     }
  197. }
  198. /*
  199. 5
  200. 6 4 4 4 6
  201. 64 4 4 6
  202.  
  203. 6
  204. 3 3 6 9 2 6
  205. 3 3 69 2 6
  206.  
  207. 7
  208. 1 7 2 7 7 5 3
  209. 1 72 77 53
  210.  */
  211.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement