Advertisement
dzocesrce

[APS] Tarot Cards

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