Advertisement
Josif_tepe

Untitled

May 18th, 2021
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.30 KB | None | 0 0
  1. public class Program {
  2.     public static void main(String[] args) {
  3.         DoublyLinkedList list = new DoublyLinkedList();
  4.         list.insert_at_end(30);
  5.         list.insert_at_end(20);
  6.         list.insert_at_end(10);
  7.  
  8.         list.insert_between(30, 20, 50);
  9.         list.print();
  10.  
  11.  
  12.         list.delete_node(50);
  13.         list.print();
  14.     }
  15.  
  16. }
  17.  
  18. class DoublyLinkedList {
  19.     class Node {
  20.         int info;
  21.         Node next; // sledbenik
  22.         Node prev; // prethodnik
  23.         public Node( int x) {
  24.             info = x;
  25.             next = null;
  26.             prev = null;
  27.         }
  28.     }
  29.     Node head = null;
  30.     void insert_at_beggining(int x) {
  31.         if(head == null) {
  32.             head = new Node(x);
  33.             return;
  34.         }
  35.         Node new_node = new Node(x);
  36.         new_node.next = head;
  37.         head.prev = new_node;
  38.         head = new_node;
  39.     }
  40.     void insert_at_end(int x) {
  41.         if(head == null) {
  42.             head = new Node(x);
  43.             return;
  44.         }
  45.         Node new_node = new Node(x);
  46.         Node tmp = head;
  47.         while(tmp.next != null) {
  48.             tmp = tmp.next;
  49.         }
  50.         tmp.next = new_node;
  51.         new_node.prev = tmp;
  52.     }
  53.     void insert_between(int x, int y, int new_value) {
  54.         Node x_node = head;
  55.  
  56.         while(x_node.info != x) {
  57.             x_node = x_node.next;
  58.         }
  59.  
  60.         Node y_node = x_node.next;
  61.         Node new_node = new Node(new_value);
  62.  
  63.         x_node.next = new_node;
  64.         new_node.prev = x_node;
  65.  
  66.         new_node.next = y_node;
  67.         y_node.prev = new_node;
  68.     }
  69.     void delete_node(int x) {
  70.         Node tmp = head;
  71.         while(tmp.info != x) {
  72.             tmp = tmp.next;
  73.         }
  74.         tmp.prev.next = tmp.next;
  75.         tmp.next.prev = tmp.prev;
  76.     }
  77.     void print() {
  78.         Node tmp = head;
  79.         while(tmp != null) {
  80.             System.out.print(tmp.info + " --> ");
  81.             if(tmp.next == null) {
  82.                 break;
  83.             }
  84.             tmp = tmp.next;
  85.         }
  86.         System.out.println();
  87.         while(tmp != null) {
  88.             System.out.print(tmp.info + " <-- ");
  89.             if(tmp.prev == null) {
  90.                 break;
  91.             }
  92.             tmp = tmp.prev;
  93.         }
  94.         System.out.println();
  95.     }
  96.  
  97. }
  98.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement