Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.50 KB | None | 0 0
  1. package lab;
  2. public class List {
  3.     public List() {
  4.         head = null;
  5.     }
  6.  
  7.     private static class Node {
  8.         int value;
  9.         Node next;
  10.  
  11.         Node(int v, Node n) {
  12.             value = v;
  13.             next = n;
  14.         }
  15.     }
  16.  
  17.     private Node head;
  18.  
  19.     public void add(int x) { // добавление новой ноды в "голову"
  20.         head = new Node(x, head);
  21.     }
  22.  
  23.     public void reverse() { //запись списка в обратном порядке
  24.         Node previous = null;
  25.         Node pointer = head;
  26.         while (pointer != null) {
  27.             Node next = pointer.next; //сохранение следующего элемента списка
  28.             pointer.next = previous; //смена направления указателя
  29.             previous = pointer; //предыдущий становится текущим
  30.             pointer = next;//переход к следующему
  31.         }
  32.  
  33.         head = previous;
  34.     }
  35.  
  36.     public void removeSameValues() { // "удаление" повторяющегося элемента
  37.         Node curr = head;
  38.         while (curr != null) {
  39.             Node nextNode = curr.next;
  40.             Node currNode = curr;
  41.             while (nextNode != null) {
  42.                 if (curr.value == nextNode.value) {
  43.                     currNode.next = nextNode.next;
  44.                     nextNode = nextNode.next;
  45.                 } else {
  46.                     nextNode = nextNode.next;
  47.                     currNode = currNode.next;
  48.                 }
  49.             }
  50.             curr = curr.next;
  51.         }
  52.     }
  53.  
  54.     public void print() {
  55.         Node h = head;
  56.         while (h != null) {
  57.             System.out.print(h.value + " ");
  58.             h = h.next;
  59.         }
  60.         System.out.println();
  61.     }
  62.  
  63.     public static void main(String[] args) {
  64.         List list = new List();
  65.  
  66.         //  for (int i = 0; i < 5; i++) { //создание и заполнение списка
  67.         //    int x = (int) (Math.random() * 100);
  68.         //     list.add(x);
  69.  
  70.         list.add(1);
  71.         list.add(2);
  72.         list.add(3);
  73.         list.add(4);
  74.         list.add(3);
  75.         list.add(5);
  76.         list.add(5);
  77.         list.add(3);
  78.         list.add(5);
  79.         list.add(5);
  80.         System.out.println(list.head.value);
  81.         System.out.println(list.head.next.value);
  82.         list.print();
  83.         System.out.println();
  84.  
  85.         list.removeSameValues();
  86.         list.print();
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement