ihsan1

hijaz dkk linkedlist

Jun 23rd, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.33 KB | None | 0 0
  1. import java.util.Scanner;
  2. class Node{
  3.     protected int data;
  4.     protected Node link;
  5.     public Node(){
  6.         link = null;
  7.         data = 0;
  8.     }
  9.     public Node (int d,Node n){
  10.         data = d;
  11.         link = n;
  12.     }
  13.     public void setLink(Node n){
  14.         link = n;
  15.     }
  16.     public void setData(int d){
  17.         data = d;
  18.     }
  19.     public Node getLink(){
  20.         return link;
  21.     }
  22.     public int getData(){
  23.         return data;
  24.     }
  25. }
  26. class linkedList{
  27.     protected Node start;
  28.     protected Node end;
  29.     public int size;
  30.     public linkedList(){
  31.         start = null;
  32.         end = null;
  33.         size = 0;
  34.     }
  35.     public boolean isEmpty(){
  36.         return start == null;
  37.     }
  38.     public int getSize(){
  39.         return size;
  40.     }
  41.     public void insertAtStart(int val){
  42.         Node nptr = new Node(val, null);size++;
  43.         if (start == null){
  44.             start = nptr;
  45.             end =start;
  46.         }
  47.         else{
  48.             nptr.setLink(start);
  49.             start = nptr;
  50.         }
  51.     }
  52.     public void insertAtEnd(int val){
  53.         Node nptr = new Node(val,null);size++;
  54.         if (start == null){
  55.             start = nptr;
  56.             end = start;
  57.         }
  58.         else{
  59.             end.setLink(nptr);
  60.             end = nptr;
  61.         }
  62.     }
  63.     public void insertAtPos(int val,int pos){
  64.         Node nptr = new Node(val,null);
  65.         Node ptr = start;
  66.         pos = pos-1;
  67.         for (int i=1;i<size;i++){
  68.             if (i == pos){
  69.                 Node tmp = ptr.getLink();
  70.                 ptr.setLink(nptr);
  71.                 nptr.setLink(tmp);break;
  72.             }
  73.             ptr = ptr.getLink();
  74.         }size++;
  75.     }
  76.     public void deleteAtPos(int pos){
  77.         if(pos == 1){
  78.             start = start.getLink();size++;
  79.             return;
  80.         }
  81.         if (pos == size){
  82.             Node s = start;
  83.             Node t = start;
  84.             while (s != end){
  85.                 t = s;
  86.                 s = s.getLink();
  87.             }
  88.             end = t;
  89.             end.setLink(null);size++;
  90.             return;
  91.         }
  92.         Node ptr = start;
  93.         pos = pos-1;
  94.         for (int i=1;i<size-1;i++){
  95.             if (i == pos){
  96.                 Node tmp = ptr.getLink();
  97.                 tmp = tmp.getLink();
  98.                 ptr.setLink(tmp);break;
  99.             }
  100.             ptr = ptr.getLink();
  101.         }size++;
  102.     }
  103.     public void display(){
  104.         System.out.print("\n Singly Linked List = ");
  105.         if (size == 0){        
  106.             System.out.print("\n Empty = ");return;            
  107.         }
  108.         if (start.getLink() == null){
  109.             System.out.println(start.getData());return;
  110.         }
  111.         Node ptr = start;
  112.         System.out.print(start.getData()+"->");
  113.         ptr = start.getLink();
  114.         while (ptr.getLink() != null){
  115.             System.out.print(ptr.getData()+"->");
  116.             ptr = ptr.getLink();
  117.         }
  118.         System.out.print(ptr.getData()+" \n");
  119.     }
  120. }
  121. public class PrakSDA {
  122.  
  123.     public static void main(String[] args) {
  124.         Scanner in = new Scanner(System.in);
  125.         linkedList  list= new linkedList();
  126.         System.out.println("Linked List max 5 :");char ch;
  127.         do{
  128.             System.out.println("\n Singly Linked List Opration ");
  129.             System.out.println("1. Masukan Diawal");
  130.             System.out.println("2. Masukan Diakhir");
  131.             System.out.println("3. Masukan Pada Posisi");
  132.             System.out.println("4. Hapus Pada Posisi");
  133.             System.out.println("5. Cek Kosong");
  134.             System.out.println("6. get size");
  135.             System.out.println("");
  136.             System.out.print("Masukan Perintah : ");
  137.             int choice=in.nextInt();
  138.             switch (choice){
  139.                 case 1 :
  140.                     System.out.println("Masukan Elemen Data");
  141.                     list.insertAtStart(in.nextInt());break;
  142.                 case 2 :
  143.                     System.out.println("Masukan Elemen Data");
  144.                     list.insertAtEnd(in.nextInt());break;
  145.                 case 3 :
  146.                     System.out.println("Masukan Elemen Data");
  147.                     int num = in.nextInt();
  148.                     System.out.println("Masukan Posisi : ");
  149.                     int pos = in.nextInt();
  150.                     if (pos <= 1 || pos > list.getSize())
  151.                         System.out.println("Posisi tidak valid !!!");
  152.                     else
  153.                         list.insertAtPos(num, pos);break;
  154.                 case 4 :
  155.                     System.out.println("Masukan Posisi");
  156.                     int p = in.nextInt();
  157.                     if (p < 1 || p > list.getSize())
  158.                         System.out.println("Posisi tidak valid !!!");
  159.                     else
  160.                         list.deleteAtPos(p);break;
  161.                 case 5 :
  162.                     System.out.println("Status Kosong ="+list.isEmpty());break;
  163.                 case 6 :
  164.                 System.out.println("Size = "+ list.getSize() +" \n");
  165.                 break;    
  166.                 default :
  167.                     System.out.println("Input Salah !!!");break;
  168.             }
  169.             list.display();
  170.             System.out.println("Lanjutkan ? (Ketik Y Atau N)");
  171.             ch = in.next().charAt(0);
  172.         }while (ch == 'Y' || ch == 'y');
  173.  
  174.     }
  175. }
Advertisement
Add Comment
Please, Sign In to add comment