Linked List

 

Linked list (one way list) adalah suatu struktur data yg merupakan suatu rangkaian atau daftar record berjenis sama. Kemudian dihubungkan melalui bantuan pointer. Pengalokasian daftar dapat dilakukan secara dinamis sehingga isi dari daftar dapat dimanipulasi. Untuk memahami
linked list, terlebih dahulu anda harus tahu konsep pointer dan pengalokasian memori

Coba anda bayangkan apabila anda mendeklarasikan array dari record(array of record) sebanyak 10 elemen. Setiap kali program dijalankan, maka akan memesan memory sebesar 10x ukuran record. Itu merupakan suatu pemborosan walaupun kita hanya menggunakan 5 elemen record.

Maka dari itu, biasanya para programer lebih memilih menggunakan linked list dalam pemrograman. Linked list dibedakan atas 2 jenis yaitu singly linked list dan doubly linked list.

Setiap elemen (node) dari suatu linked list terdiri atas dua bagian, yaitu :
1.   INFO   , berisi informasi tentang elemen data yang bersangkutan.
2 .  NEXT (link field/next pointer field), berisi alamat dari elemen (node) selanjutnya yang dituju.

Secara umum linked list tersusun atas sejumlah bagian-bagian data yang lebih kecil yang terhubung (biasanya melalui pointer). Linked list dapat divisualisasikan seperti kereta, bagian kepala linked list adalah mesin kereta, data yang disimpan adalah gerbong, dan pengait antar gerbong adalah pointer.

Berikut ini adalah contoh implementasi linked list untuk menambahkan dan memindahkan node pada bagian depan dan belakang list :

// Fig. 17.5: ListTest.java
// ListTest class to demonstrate List capabilities.
import com.deitel.jhtp6.ch17.List;
import com.deitel.jhtp6.ch17.EmptyListException;
public class ListTest
{
public static void main( String args[] )
{
List list = new List(); // create the List container

// insert integers in list
list.insertAtFront( -1 );
list.print();
list.insertAtFront( 0 );
list.print();
list.insertAtBack( 1 );
list.print();
list.insertAtBack( 5 );
list.print();

// remove objects from list; print after each removal
try
{
Object removedObject = list.removeFromFront();
System.out.printf( "%s removed\n", removedObject );
list.print();

removedObject = list.removeFromFront();
System.out.printf( "%s removed\n", removedObject );
list.print();

removedObject = list.removeFromBack();
System.out.printf( "%s removed\n", removedObject );
list.print();

removedObject = list.removeFromBack();
System.out.printf( "%s removed\n", removedObject );
list.print();
} // end try
catch ( EmptyListException emptyListException )
{
emptyListException.printStackTrace();
} // end catch
} // end main
} // end class ListTest

Output :

The list is: -1
The list is: 0 -1
The list is: 0 -1 1
The list is: 0 -1 1 5
0 removed
The list is: -1 1 5
-1 removed
The list is: 1 5
5 removed
The list is: 1
1 removed
Empty list

Share this

Related Posts

Previous
Next Post »