Advertisement
Kame3

[LIST]-Swap_nodes_without_swaping_data

Aug 24th, 2021
1,117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.17 KB | None | 0 0
  1. public static void promeni_lista(SLL<Integer> lista, int x, int y) {
  2.         SLLNode<Integer> d1 = lista.getFirst();
  3.         SLLNode<Integer> dx = lista.getFirst();
  4.         SLLNode<Integer> dy = lista.getFirst();
  5.         SLLNode<Integer> prevX = null;
  6.         SLLNode<Integer> prevY = null;
  7.  
  8.         if (d1 == null) {
  9.             return;
  10.         }
  11.  
  12.         if (x == y) {
  13.             return;
  14.         }
  15.  
  16.         while (dx != null && dx.element != x) {
  17.             prevX = dx;
  18.             dx = dx.succ;
  19.         }
  20.         while (dy != null && dy.element != y) {
  21.             prevY = dy;
  22.             dy = dy.succ;
  23.         }
  24.  
  25.         if (dx != null && dy != null) {
  26.             if (prevX != null) {
  27.                 prevX.succ = dy;
  28.             } else {
  29.                 d1 = dy;
  30.             }
  31.  
  32.             if (prevY != null) {
  33.                 prevY.succ = dx;
  34.             } else {
  35.                 d1 = dx;
  36.             }
  37.  
  38.             SLLNode<Integer> pom = dx.succ;
  39.             dx.succ = dy.succ;
  40.             dy.succ = pom;
  41.  
  42.         } else {
  43.             System.out.println("Swapping not possible");
  44.         }
  45.  
  46.  
  47.         System.out.println(lista.toString());
  48.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement