Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- class Node{
- protected int data;
- protected Node link;
- public Node(){
- link = null;
- data = 0;
- }
- public Node (int d,Node n){
- data = d;
- link = n;
- }
- public void setLink(Node n){
- link = n;
- }
- public void setData(int d){
- data = d;
- }
- public Node getLink(){
- return link;
- }
- public int getData(){
- return data;
- }
- }
- class linkedList{
- protected Node start;
- protected Node end;
- public int size;
- public linkedList(){
- start = null;
- end = null;
- size = 0;
- }
- public boolean isEmpty(){
- return start == null;
- }
- public int getSize(){
- return size;
- }
- public void insertAtStart(int val){
- Node nptr = new Node(val, null);size++;
- if (start == null){
- start = nptr;
- end =start;
- }
- else{
- nptr.setLink(start);
- start = nptr;
- }
- }
- public void insertAtEnd(int val){
- Node nptr = new Node(val,null);size++;
- if (start == null){
- start = nptr;
- end = start;
- }
- else{
- end.setLink(nptr);
- end = nptr;
- }
- }
- public void insertAtPos(int val,int pos){
- Node nptr = new Node(val,null);
- Node ptr = start;
- pos = pos-1;
- for (int i=1;i<size;i++){
- if (i == pos){
- Node tmp = ptr.getLink();
- ptr.setLink(nptr);
- nptr.setLink(tmp);break;
- }
- ptr = ptr.getLink();
- }size++;
- }
- public void deleteAtPos(int pos){
- if(pos == 1){
- start = start.getLink();size++;
- return;
- }
- if (pos == size){
- Node s = start;
- Node t = start;
- while (s != end){
- t = s;
- s = s.getLink();
- }
- end = t;
- end.setLink(null);size++;
- return;
- }
- Node ptr = start;
- pos = pos-1;
- for (int i=1;i<size-1;i++){
- if (i == pos){
- Node tmp = ptr.getLink();
- tmp = tmp.getLink();
- ptr.setLink(tmp);break;
- }
- ptr = ptr.getLink();
- }size++;
- }
- public void display(){
- System.out.print("\n Singly Linked List = ");
- if (size == 0){
- System.out.print("\n Empty = ");return;
- }
- if (start.getLink() == null){
- System.out.println(start.getData());return;
- }
- Node ptr = start;
- System.out.print(start.getData()+"->");
- ptr = start.getLink();
- while (ptr.getLink() != null){
- System.out.print(ptr.getData()+"->");
- ptr = ptr.getLink();
- }
- System.out.print(ptr.getData()+" \n");
- }
- }
- public class PrakSDA {
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- linkedList list= new linkedList();
- System.out.println("Linked List max 5 :");char ch;
- do{
- System.out.println("\n Singly Linked List Opration ");
- System.out.println("1. Masukan Diawal");
- System.out.println("2. Masukan Diakhir");
- System.out.println("3. Masukan Pada Posisi");
- System.out.println("4. Hapus Pada Posisi");
- System.out.println("5. Cek Kosong");
- System.out.println("6. get size");
- System.out.println("");
- System.out.print("Masukan Perintah : ");
- int choice=in.nextInt();
- switch (choice){
- case 1 :
- System.out.println("Masukan Elemen Data");
- list.insertAtStart(in.nextInt());break;
- case 2 :
- System.out.println("Masukan Elemen Data");
- list.insertAtEnd(in.nextInt());break;
- case 3 :
- System.out.println("Masukan Elemen Data");
- int num = in.nextInt();
- System.out.println("Masukan Posisi : ");
- int pos = in.nextInt();
- if (pos <= 1 || pos > list.getSize())
- System.out.println("Posisi tidak valid !!!");
- else
- list.insertAtPos(num, pos);break;
- case 4 :
- System.out.println("Masukan Posisi");
- int p = in.nextInt();
- if (p < 1 || p > list.getSize())
- System.out.println("Posisi tidak valid !!!");
- else
- list.deleteAtPos(p);break;
- case 5 :
- System.out.println("Status Kosong ="+list.isEmpty());break;
- case 6 :
- System.out.println("Size = "+ list.getSize() +" \n");
- break;
- default :
- System.out.println("Input Salah !!!");break;
- }
- list.display();
- System.out.println("Lanjutkan ? (Ketik Y Atau N)");
- ch = in.next().charAt(0);
- }while (ch == 'Y' || ch == 'y');
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment