Posted by : Kuronymous Saturday, October 27, 2012

Langsung saja ini lah contoh programnya...


package praktikumalgo2;

    public class Node {

        Object data;
        Node next;
    Node prev;

        public Node(Object data) {
            this.data = data;
        }

        public Node() {
        }
    }



Single Linkedlist


package praktikumalgo2;

/**
 *
 * @author AludiZrx
 */
public class SingleList {

    Node head, tail;
    int size;

    public void inisialisasi() {
    }

    public boolean isEmpty() {
        return size == 0;
    }

    public int size() {
        return size;
    }

    public void addfirst(Object o) {
        Node input = new Node();
        input.data = o;
        if (isEmpty()) {
            head = input;
            tail = input;
        } else {
            input.next = head;
            head = input;
        }
        size++;
    }

    public void addLast(Object o) {
        Node input = new Node();
        input.data = o;
        if (isEmpty()) {
            head = input;
            tail = input;
        } else {
            tail.next = input;
            tail = tail.next;
        }
        size++;
    }

    public void removeFirst() {
        Node temp = head;
        if (head == tail) {
            head = tail = null;
        } else {
            head = temp.next;
            temp = null;
        }
        size--;
    }

    public void removeLast() {
        Node temp = head;
        if (head == tail) {
            head = tail = null;
        } else {
            while (temp.next != tail) {
                temp = temp.next;
            }
            temp.next = null;
            tail = temp;
            temp = null;
        }
        size--;
    }

    public void insertAfterKey(Object o, Object key) {
        Node input = new Node();
        input.data = o;
        Node temp = head;

        if (temp.data == key && temp == tail) {
            this.addLast(o);
        }
        while (!temp.data.equals(key)) {
            temp = temp.next;
        }
        input.next = temp.next;
        temp.next = input;
    }

    public void insertBeforeKey(Object o, Object key) {
        Node input = new Node();
        input.data = o;
        Node temp = head;

        if (temp.data == key && temp == head) {
            this.addfirst(o);
        }
        if (temp.next.data.equals(key)) {
            input.next = temp.next;
            temp.next = input;
        }
    }

    public void removeKey(Object key) {
        Node temp = head;
        if (!isEmpty()) {
            while (temp != null) {
                if (temp.next.data == key) {
                    temp.next = temp.next.next;
                    if (temp.next == null) {
                        tail = temp;
                    }
                    break;
                }
                if ((temp.data == key) && (temp == head)) {
                    this.removeFirst();
                    break;
                }
                temp = temp.next;
            }
        } else {
            System.out.println("Data is empty!");
        }
        size--;

    }

    public void print() {
        Node temp = head;

        if (!isEmpty()) {
            while (temp != null) {
                System.out.println(temp.data);
                temp = temp.next;
            }

        } else {
            System.out.println("Tidak Ada Data");
        }
    }

    public static void main(String[] args) {
        praktikumalgo2.SingleList asd = new praktikumalgo2.SingleList();
        asd.addfirst(60);
        asd.addLast(50);
        asd.addfirst(70);
        asd.addLast(10);
        asd.print();
        System.out.println("");
        System.out.println("di hapus");
        asd.removeFirst();
        asd.removeLast();
        asd.print();
        System.out.println("");
        System.out.println("insert After");
        asd.insertAfterKey(100, 60);
        asd.print();
        System.out.println("");
        System.out.println("insert Before");
        asd.insertBeforeKey(200, 60);
        asd.print();
        System.out.println("");
        System.out.println("remove key");
        asd.removeKey(100);
        asd.print();
    }
}


Double Linkedlist


package praktikumalgo2;

/**
 *
 * @author AludiZrx
 */
public class DoubleList {
    Node head,tail;
    int size;
    boolean isEmpty(){
        return size==0;
    }

public void insertFirst(Object o){
    Node baru = new Node();
    baru.data = o;
    if (head == null){
        head = tail = baru;
    }
    else{
        baru.next = head;
        head.prev = baru;
        head = baru;
    }size++;
}

public void insertLast (Object o){
    Node baru = new Node ();
    baru.data = o;
    if (head == null){
        head = tail = null;
    }
    else{
        baru.prev = tail;
        tail.next = baru;
        tail = baru;
    }size++;
}

public void insertAfter (Object o, Object key){
    Node baru = new Node ();
    baru.data = o;
    Node temp = head;
 
    if(temp.data == key && temp == tail){
        this.insertLast(o);
    }
    while (!temp.data.equals(key)){
        temp = temp.next;
    }
    baru.prev = temp;
    baru.next = temp.next;
    temp.next = baru;
    temp.next.prev= baru;
    size++;
}


public void print (){
    Node temp = head;
    if(!isEmpty()){
        while (temp != null){
            System.out.println(temp.data);
            temp = temp.next;
        }
    }
    else{
        System.out.println("Tidak ada Data");
    }
}
    public static void main(String[] args) {
        DoubleList d = new DoubleList();
        d.insertFirst(100);
        d.insertFirst(200);
        d.insertFirst(300);
        d.insertLast(400);
        d.insertAfter(50, 200);
        d.insertAfter(40, 300);
        d.insertAfter(30, 400);
        d.print();
    }
}


Leave a Reply

Setelah Melihat Artikelnya, Luangkan Sedikit Waktu anda Untuk Memberi Komentar,,,,
"JANGAN JADI PEMBACA BISU"

Subscribe to Posts | Subscribe to Comments

Copyright © gado2.co.vu -Black Rock Shooter- Powered by Blogger - Designed by Johanes Djogan