Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

DLL.

Presentasi serupa


Presentasi berjudul: "DLL."— Transcript presentasi:

1 DLL

2 Doubly Linked List A doubly linked list provides a natural implementation of the List ADT Nodes implement Position and store: element link to the previous node link to the next node Special trailer and header nodes prev next elem node trailer header nodes/positions elements Linked Lists

3 Insertion We visualize operation insertAfter(p, X), which returns position q p A B C p q A B C X p q A B X C Linked Lists

4 Insertion Algorithm Algorithm insertAfter(p,e): Create a new node v v.setElement(e) v.setPrev(p) {link v to its predecessor} v.setNext(p.getNext()) {link v to its successor} (p.getNext()).setPrev(v) {link p’s old successor to v} p.setNext(v) {link p to its new successor, v} return v {the position for the element e} Linked Lists

5 Deletion We visualize remove(p), where p = last() A B C D p A B C p D
Linked Lists

6 Deletion Algorithm Algorithm remove(p): t = p.element {a temporary variable to hold the return value} (p.getPrev()).setNext(p.getNext()) {linking out p} (p.getNext()).setPrev(p.getPrev()) p.setPrev(null) {invalidating the position p} p.setNext(null) return t Linked Lists

7 Implemnetasi

8 ADT DLL class NodeDLL{ int data; NodeDLL prev,next; } public class DoubleLinkedList { private NodeDLL pKepala, pEkor; public DoubleLinkedList(){pKepala = null; pEkor = null;} public void sisipDipKepala(int dt){} public void sisipDipEkor(int data){} public void cetak(String kom){} public void hapusDataTertentu(int dataHapus){} public void sisipDataTerurut(int data){}

9 DLL.sisipDipKepala public void sisipDipKepala(int dt){ NodeDLL baru = new NodeDLL(); baru.data = dt; if (pKepala == null) { baru.prev = pKepala; baru.next = pEkor; pKepala = baru; pEkor = baru; } else { baru.next = pKepala; pKepala.prev = baru; }

10 DLL.sisipDipEkor public void sisipDipEkor(int data){
NodeDLL baru = new NodeDLL(); baru.data = data; if (pEkor == null) { baru.prev = pKepala; baru.next = pEkor; pKepala = baru; pEkor = baru; } else { baru.prev = pEkor; pEkor.next = baru; }

11 DLL.cetak public void cetak(String kom){ System.out.println(kom);
NodeDLL p = pKepala; while (p!=pEkor.next){ System.out.print(p.data+"->"); p = p.next; } System.out.println();

12 Diskusi public void hapusDataTertentu(int dataHapus){ ??? }
public void sisipDataTerurut(int data){

13 Tugas Kelompok k-2 Suatu angkatan mahasiswa terdiri dari beberapa mahasiswa, setiap mahasiswa pada suatu semester 3 ke atas dapat mengambil beberapa matakuliah yang tidak sama antara satu mahasiswa dengan mahasiswa yang lain. Susun ADT persoalan ini menggunakan DLL. Contoh Angkatan : Semester : 3 Jumlah mhs : 5 IP Rata-rata : .. Daftar Mhs 1. Ali SBD B 3 ASD B 5 2. Toni SO B+ 3 3 … Dikumpulkan Minggu depan tgl 27 Maret 2013 (HC) Kembangkan SC (dapat didownload di e-learning) Dikumpulksn di Recording (Sebelum Pulang)


Download ppt "DLL."

Presentasi serupa


Iklan oleh Google