Nama: Danu Arif Rahman NRP: 1209100091: Linked List
Nama: Danu Arif Rahman NRP: 1209100091: Linked List
/** * * @author Danoen */ public class Link <E> { private E element; private Link<E> next;
import listarray.List;
/** * * @author Danoen */ public class Llist<E> implements List<E> { private Link<E> head; private Link<E> tail; protected Link<E> curr; int cnt;
public E remove() { if (curr.getNext()==null)return null; E it =curr.getNext().getElement(); if (tail==curr.getNext())tail=curr; curr.setNext(curr.getNext().getNext()); cnt--; return it; }
public void moveToPos(int pos) { if(pos>=0&&pos<=cnt){ curr = head; for(int i=0;i<pos;i++) curr=curr.getNext(); }else{ System.out.println("posisi di luar hasil");
} }
public E getValue() { if(curr.getNext()==null){ E error=(E)"tidak ada yang diperoleh"; return error; }else{ return curr.getNext().getElement(); } } public void show(){ System.out.println("Link Awal akhir= "); Link<E> lihat = head.getNext(); while(lihat!=null){ System.out.print(lihat.getElement()+""); lihat=lihat.getNext(); } } } MainLlist.java package LinkList;
import java.util.Scanner;
/** * * @author Danoen */ public class mainLlist { /** * @param args the command line arguments
*/ public static void main(String[] args) { int i; Object eval; Scanner scanner = new Scanner(System.in); //i = scanner.nextInt(); Llist list = new Llist (); do{ do{ System.out.println("1. Clear\n" +"2. Insert\n" +"3. Append\n" +"4. Remove\n" +"5. MoveToStart\n" +"6. MoveToEnd\n" +"7. Prev\n" +"8. Next\n" +"9. Length\n" +"10.CurrPos\n" +"11.MoveToPos\n" +"12.GetValue\n" +"13.Show\n" +"14.Keluar\n" +"Pilihan Anda : "); i = scanner.nextInt(); } while ((i<1)||(i>14));
System.out.println("Masukkan elemen yang akan di insert"); eval = scanner.nextInt(); list.insert(eval); } else if(i==3) {System.out.println("masukkan elemen yang akan diappend"); eval=scanner.nextInt(); list.append(eval);
} else if(i==4) {System.out.println("masukkan elemen yang akan diremove"); eval=scanner.nextInt(); list.remove(); } else if(i==5) {System.out.println("masukkan elemen current yang akan dipindah di depan"); eval=scanner.nextInt(); list.moveToStart(); } else if(i==6) {System.out.println("masukkan elemen current yang akan dipindah di belakang"); eval=scanner.nextInt(); list.moveToEnd(); } else if(i==7) {System.out.println("masukkan elemen current yang akan dipindah ke posisi sebelumnya"); eval=scanner.nextInt(); list.prev(); } else if(i==8) {System.out.println("masukkan elemen current yang akan dipindah ke posisi selanjutnya");
eval=scanner.nextInt(); list.next(); } else if(i==9) {System.out.println("panjang list = "+list.length());} else if(i==10) {System.out.println("posisi current ="+list.getValue());} else if(i==11) {System.out.println("masukkan elemen current yang akan dipindah"); System.out.println(""); } else if(i==12) {System.out.println("No current elements"); System.out.println("posisi current ="+list.getValue());} else if(i==13) { list.show(); } else if(i==14){} }while(i!=14);