STRUKTUR DATA - PRAKTIKUM 6

Tugas Praktikum 6 Struktur Data Double Linked List
LOGO AMIK BESAR
Nama : Yoga Ilham Rakasiwi
NIM : 16.MI.0010
Manajemen Informatika 2017/2018








Yoooooooooooooooooo, kali ini saya akan menjelaskan tentang double linked list. Berikut penjelasannya.



DOUBLE LINKED LIST
Double linked list dibentuk dengan menyusun sejumlah elemen sehingga pointer next menunjuk ke elemen yang mengikutinya dan pointer back menunjuk ke elemen yang mendahuluinya.
Ini diilustrasikan sebuah simpul dalam double linked list. Info adalah data yang digunakan dalam simpul, back adalah pointer yang menunjuk pada simpul sebelumnya, dan next adalah pointer yang
menunjuk pada simpul sesudahnya.

Operasi Pada Double Linked List

Terdapat beberapa Operasi yang penting pada double linked list, yaitu :
1. Menyisipkan sebagai simpul ujung(awal) dari linked list.
2. Membaca atau menampilkan
3. Mencari sebuah simpul tertentu
4. Menghapus simpul tertentu (simpul depan)
5. Menghapus simpul tertentu (simpul di tengah)
6. Menghapus simpul tertentu (simpul terakhir)
7. Menyisipkan sebelum simpul tertentu
8. Menyisipkan setelah simpul tertentu



Berikut contoh programnya :


1.1



1.2



1.3



1.4



1.5



1.6

Karena class Dll yang dibuat belum memiliki main method, maka supaya bisa di run kita buat main methodnya. 




Run : 





Program Tugas :


Berikut Codingnya :

package strukturdatajobsheet6;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Tugas 
{
    static Node head;
    static class Node
    {
        int data;
        Node next, prev;
        
        Node(int d)
        {
            data = d;
            next = prev = null;
        }        
    }
    public void InsertAfter(Node prev_Node, int new_data)
{
    if(prev_Node == null)
    {
        System.out.println("The given previous node cannot be NULL");
        return;
    }
    Node new_node = new Node (new_data);
    new_node.next = prev_Node.next;
    prev_Node.next = new_node;
    new_node.prev = prev_Node;
    if(new_node.next != null)
        new_node.next.prev = new_node;
}
    void push(int new_data)
{
    Node new_Node = new Node(new_data);
    new_Node.next = head;
    new_Node.prev = null;
    if(head != null)
        head.prev = new_Node;;
        head = new_Node;
}
    void append(int new_data)
{
    Node new_node = new Node(new_data);
    Node last = head;
    new_node.next = null;
    if(head == null)
    {
        new_node.prev = null;
        head = new_node;
        return;
    }
    while(last.next != null)
        last = last.next;
    last.next = new_node;
    new_node.prev = last;
}
    void reverse()
    {
        Node temp = null;
        Node current = head;
        while(current != null)
        {
            temp = current.prev;
            current.prev = current.next;
            current.next = temp;
            current = current.prev;
        }
        if (temp != null)
        {
            head = temp.prev;
        }
    }
    void printList(Node node)
    {
        while (node != null)
        {
            System.out.print(node.data+" ");
            node = node.next;
        }
    }
    public static void main(String[] args) throws IOException
    {
        Tugas dll = new Tugas();
        dll.append(6);
        dll.push(8);
        dll.push(7);
        dll.push(1);
        dll.append(4);
        BufferedReader dataIn = new BufferedReader (new InputStreamReader(System.in));
        System.out.println("\nMenu Pengisian Data");
        System.out.println("1. Traversal in Forward Direction");
        System.out.println("2. Traversal in Reverse Direction");
        System.out.print("Pilihan : ");
        int isi_data = Integer.parseInt(dataIn.readLine());
        switch(isi_data)
        {
            case 1 :
                    System.out.println("Traversal in Forward Direction");
                    dll.printList(head);
                    break;
            case 2 :
                    dll.reverse();
                    System.out.println(" ");
                    System.out.println("Traversal in Reverse Direction");
                    dll.printList(head);
                    break;
            default: System.out.println("\nPilihan tidak Tersedia");
        }
            System.out.println("\n");
    }

}



Menggunakan NetBeans :



Run :


Forward





Reverse :

Komentar

Postingan populer dari blog ini

STRUKTUR DATA - PRAKTIKUM 4

PAPER UTS SORTING

STRUKTUR DATA - PRAKTIKUM 8