Advertisement
dzocesrce

[APS] Overturn Strings

Aug 28th, 2023 (edited)
448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.98 KB | None | 0 0
  1. // prevrti stringovi vo lista
  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. class SLL<E> {
  20.     private SLLNode<E> first;
  21.  
  22.     public SLL() {
  23.         this.first = null;
  24.     }
  25.  
  26.     public void deleteList() {
  27.         first = null;
  28.     }
  29.  
  30.     public int length() {
  31.         int ret;
  32.         if (first != null) {
  33.             SLLNode<E> tmp = first;
  34.             ret = 1;
  35.             while (tmp.succ != null) {
  36.                 tmp = tmp.succ;
  37.                 ret++;
  38.             }
  39.             return ret;
  40.         } else
  41.             return 0;
  42.  
  43.     }
  44.  
  45.     @Override
  46.     public String toString() {
  47.         String ret = new String();
  48.         if (first != null) {
  49.             SLLNode<E> tmp = first;
  50.             ret += tmp;
  51.             while (tmp.succ != null) {
  52.                 tmp = tmp.succ;
  53.                 ret += " " + tmp;
  54.             }
  55.         } else
  56.             ret = "Prazna lista!!!";
  57.         return ret;
  58.     }
  59.  
  60.     public void insertFirst(E o) {
  61.         SLLNode<E> ins = new SLLNode<E>(o, first);
  62.         first = ins;
  63.     }
  64.  
  65.     public void insertAfter(E o, SLLNode<E> node) {
  66.         if (node != null) {
  67.             SLLNode<E> ins = new SLLNode<E>(o, node.succ);
  68.             node.succ = ins;
  69.         } else {
  70.             System.out.println("Dadenot jazol e null");
  71.         }
  72.     }
  73.  
  74.     public void insertBefore(E o, SLLNode<E> before) {
  75.         if (first != null) {
  76.             SLLNode<E> tmp = first;
  77.             if (first == before) {
  78.                 this.insertFirst(o);
  79.                 return;
  80.             }
  81.             while (tmp.succ != before)
  82.                 tmp = tmp.succ;
  83.             if (tmp.succ == before) {
  84.                 SLLNode<E> ins = new SLLNode<E>(o, before);
  85.                 tmp.succ = ins;
  86.             } else {
  87.                 System.out.println("Elementot ne postoi vo listata");
  88.             }
  89.         } else {
  90.             System.out.println("Listata e prazna");
  91.         }
  92.     }
  93.  
  94.     public void insertLast(E o) {
  95.         if (first != null) {
  96.             SLLNode<E> tmp = first;
  97.             while (tmp.succ != null)
  98.                 tmp = tmp.succ;
  99.             SLLNode<E> ins = new SLLNode<E>(o, null);
  100.             tmp.succ = ins;
  101.         } else {
  102.             insertFirst(o);
  103.         }
  104.     }
  105.  
  106.     public E deleteFirst() {
  107.         if (first != null) {
  108.             SLLNode<E> tmp = first;
  109.             first = first.succ;
  110.             return tmp.element;
  111.         } else {
  112.             System.out.println("Listata e prazna");
  113.             return null;
  114.         }
  115.     }
  116.  
  117.     public E delete(SLLNode<E> node) {
  118.         if (first != null) {
  119.             SLLNode<E> tmp = first;
  120.             if (first == node) {
  121.                 return this.deleteFirst();
  122.             }
  123.             while (tmp.succ != node && tmp.succ.succ != null)
  124.                 tmp = tmp.succ;
  125.             if (tmp.succ == node) {
  126.                 tmp.succ = tmp.succ.succ;
  127.                 return node.element;
  128.             } else {
  129.                 System.out.println("Elementot ne postoi vo listata");
  130.                 return null;
  131.             }
  132.         } else {
  133.             System.out.println("Listata e prazna");
  134.             return null;
  135.         }
  136.     }
  137.  
  138.     public SLLNode<E> getFirst() {
  139.         return first;
  140.     }
  141.  
  142.     public SLLNode<E> find(E o) {
  143.         if (first != null) {
  144.             SLLNode<E> tmp = first;
  145.             while (tmp.element != o && tmp.succ != null)
  146.                 tmp = tmp.succ;
  147.             if (tmp.element == o) {
  148.                 return tmp;
  149.             } else {
  150.                 System.out.println("Elementot ne postoi vo listata");
  151.             }
  152.         } else {
  153.             System.out.println("Listata e prazna");
  154.         }
  155.         return first;
  156.     }
  157. }
  158. public class overturnStrings {
  159.     public static void prevrti(SLL<String> lista){
  160.         SLLNode<String> temp= lista.getFirst();
  161.         while(temp!=null){
  162.             String svrten= "";
  163.             for(int i=temp.element.length()-1;i>-1;i--){
  164.                 svrten+= temp.element.charAt(i);
  165.             }
  166.             lista.insertAfter(svrten,temp);
  167.             SLLNode<String> prev=temp;
  168.             temp=temp.succ;
  169.             lista.delete(prev);
  170.             temp=temp.succ;
  171.         }
  172.  
  173.     }
  174.     public static void main(String[] args) {
  175.         Scanner input= new Scanner(System.in);
  176.         int n= Integer.parseInt(input.nextLine());
  177.         String[] zborovi= input.nextLine().split("\\s+");
  178.         SLL<String> lista= new SLL<String>();
  179.         for(int i=0;i<n;i++){
  180.             lista.insertLast(zborovi[i]);
  181.         }
  182.         prevrti(lista);
  183.         System.out.println(lista);
  184.     }
  185. }
  186. /*
  187. 3
  188. otemerV e ovecnoS
  189. Vremeto e Soncevo
  190.  
  191. 5
  192. jokeS kotep adru madaj !
  193. Sekoj petok urda jadam !
  194.  */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement