Kamis, 19 Juli 2012

STRUKTUR DATA LINIER


STRUKTUR DATA LINIER
Struktur data linear adalah kumpulan komponen-komponen yang tersusun membentuk satu garis linear. Bila komponen-komponen ditambahkan (atau dikurangi), maka struktur-struktur tersebut berkembang (atau menyusut). Pemakaian sturktur data yang tepat di dalam proses pemrogramanakan menghasilkan algoritma yang lebih jelas dan tepat , sehingga menjadikan program secara keseluruhan lebih efisien dan sederhana.
Linked List
Daftar bertaut (bahasa Inggris: linked list) atau kadang-kadang disebut dengan senarai bertaut atau senarai berantai dalam ilmu komputer merupakan sebuah struktur data yang digunakan untuk menyimpan sejumlah objek data biasanya secara terurut sehingga memungkinkan penambahan, pengurangan, dan pencarian atas elemen data yang tersimpan dalam daftar dilakukan secara lebih efektif. Pada praktiknya sebuah struktur data memiliki elemen yang digunakan untuk saling menyimpan rujukan antara satu dengan lainnya sehingga membentuk sebuah daftar abstrak, tiap-tiap elemen yang terdapat pada daftar abstrak ini seringkali disebut sebagai node. karena mekanisme rujukan yang saling terkait inilah disebut sebagai daftar berantai.
Double linked list Circular

Double Linked List Circular adalah linked list dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu 1 field pointer yang menunjuk pointer berikutnya (next), 1 field menunjuk pointer sebelumnya (prev), serta sebuah field yang berisi data untuk node tersebut.
Double Linked List Circular pointer next dan prev nya menunjuk ke dirinya sendiri secara circular.
•          Double: artinya field pointer-nya terdiri dari dua buah dan dua arah, yaitu prev dan next
•          Linked List: artinya node-node tersebut saling terhubung satu sama lain.
•          Circular: artinya pointer next dan prev-nya menunjuk ke dirinya sendiri.

  b) Double linked list Non Circular
Double linked list non circular" adalah Double Linked List yang memiliki 2 buah pointer yaitu pointernext dan prev.
Pointer next menunjuk pada node setelahnya dan pointer prev menunjuk pada node sebelumnya.
Pengertian:
Double : artinya field pointer-nya dua buah dan dua arah, ke node sebelum dan sesudahnya.
Linked List : artinya node-node tersebut saling terhubung satu sama lain.
Non Circular : artinya pointer prev dan next-nya akan menunjuk pada NULL.
c) Single linked list Circular
SLLC adalah Single Linked List yang pointer nextnya menunjuk pada dirinya sendiri.  Jika Single Linked List tersebut terdiri dari beberapa node, maka pointer next pada node terakhir akan menunjuk ke node terdepannya.
Pengertian:
Single : artinya field pointer-nya hanya satu buah saja dan satu arah.
Linked List : artinya node-node tersebut saling terhubung satu sama lain.
Circular : artinya pointer next-nya akan menunjuk pada dirinya sendiri sehingga berputar.
Single linked list Non Circular :
SINGLE LINKED LIST NON CIRCULAR MENGGUNAKAN HEAD

Dibutuhkan satu buah variabel pointer : head yang akan selaku menunjuk pada node pertama
Deklarasi Pointer Penunjuk Head Single Linked List sebagai berikut :

TNode*head

Tambah data Di Depan
Penambahan data baru akan dikaitan di node paling depan, namun pada daat pertama kali (data masih kosong), maka penambahan data dilakukan dengan cara : node head ditunjukan ke node baru tersebut
Prinsipnya adalah mengkaitkan node baru dengan head, kemudian head akan menunjuk pada data baru tersebut sehingga head akan tetap sekaku menjadi data terdepan.

Menambah Node Di Belakang
Penambahan dilakukan di belakang, namin pada saat pertama kali, node langsung ditunjuk oleh head, membutuhkan pointer bantu untuk mengetahui node terbelakang kemudian dikaitkan dengan node baru, perlu digunakan perulangan.

Menghapus Data Di Depan
Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer, maka harus dilakukan penggunaan suatu pointer lain (hapus) yang digunakan untuk menunjuk node yang akan dihapus, barulah kemusian menghapus pointer menggunakan perintah delete. Sebelum data terdepan terhapus, terlebih dahulu head harus menunhuk ke alamat berikutnya agar list tidak putus, jika head masih NULL berarti data masih kosong.

Menghapus Data Di Belakang
Membutuhkan pointer bantu dan hapus. Pointer hapus digunakan untuk menunjuk node yang akan dihapus, Pointer bantu untuk menunjuk node sebelum node yang akan dihapus yang akan menjadi node yang terakhir. Pointer bantu digunakan untuk menunjuk ke nilai NULL selalu bergerak sampai sebelum node yang akan dihapus kemudian pointer hapus diletakan setelah pointer bantu. Selanjutnya pointer hapus akan menunjuk ke NULL.

Tidak ada komentar:

Posting Komentar