B.Linked List ( Definisi )
Pengertian Lingked List adalah struktur berupa rangkaian elemen saling
berkait dimana tiap elemen dihubungkan ke elemen yang lain melalui pointer.
Linked list adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan
tertentu, yang setiap elemennya terdiri dari dua bagian.Linked list juga
merupakan suatu cara untuk menyimpan data dengan struktur sehingga dapat secara
otomatis menciptakan suatu tempat baru untuk menyimpan data yang
diperlukan.Masing-masing komponen sering disebut dengan simpul. Setiap simpul
pada dasarnya dibagi atas dua bagian. Bagian pertama disebut dengan Isiyaitu
bagian yang berisi nilai yang disimpan oleh simpul. Bagian kedua disebut bagian
Pointer, yaitu berisi alamat dari simpul berikutnya dan atau sebelumnya.
Linked
List dapat disajikan dengan 2 bagian besar yaitu, Singly List dan Doubly List. Baik Singly List maupun Doubly List dapat juga disajikan secara
melingkar (circular).
·
SINGLY LINKED
LIST
Merupakan
Linked List yang paling sederhana. Setiap simpul dibagi menjadi dua bagian
yaitu bagian Isi dan bagian Pointer. Bagian Isi merupakan bagian yang berisi
data yang disimpan oleh simpul, sedangkan bagian Pointer merupakan bagian yang
berisi alamat dari simpul berikutnya.
simpul pertama dihubungkan ke simpul kedua melalui bagian simpul pertama. Bagian Pointer simpul kedua dihubungkan
ke simpul ketiga.Demikian seterusnya hingga simpul terakhir. Bagian
Pointer simpul terakhir tidak dihubungkan ke simpul lain yang disebut sebagai
NULL.
Singly Linked List terbagi atas 2 yaitu :
Ø Non Circular Singly Linked List
Ø Circular Singly Linked List
Deklarasi Singly Linked List
Typedef struct node *simpul;
Struct node
{
Type_data Isi;
Simpul Next;
};
A. Operasi pada Singly Linked List
a. Menambah
Simpul
Operasi yang digunakan untuk menyisipkan simpul di posisi tertentu.Penyisipan simpul dapat dilakukan di posisi depan, penyisipan simpul dibelakang,
penyisipan simpul di antara dua simpul (simpul tengah).
b. Menghapus
Simpul
Maksudnya adalah operasi menghapus suatu simpul dari suatu Linked List.
Dalam melakukan penghapusan simpul, ada yang perlu diperhatikan, bahwa Linked
List tidak boleh kosong dan Linked List tidak boleh terputus. Sama halnya
dengan penyisipan, penghapusan simpul juga dapat dilakukan terhadap simpul
depan, simpul belakang, dan simpul tengah.
c.
Mencetak Isi Simpul
Nilai
masing-masing simpul dapat dicetak mulai dari isi simpul pertama atau
simpul depan hingga simpul belakang dengan fungsi
berikut ini.
void Cetak(simpul
L)
{
Simpul bantu;
if (L == NULL)
cout
<< “Linked List Kosong. . . . “ << endl;
else
{
bantu=L;
cout<<”Isi Linked List : “;
while (bantu->Next != NULL)
{
Cout << bantu -> Isi << “-->”;
}
}
}
·
Doubly Linked List
Doubly Linked List merupakan Linked List
dimana setiap simpul dibagi menjadi tiga bagian yaitu bagian isi, bagian
pointer kiri,danbagian pointer kanan.Bagian isi merupakan bagian yang berisi
data yang disimpan oleh simpul, sedangkan bagian pointer kiri merupakan bagian
yang berisi alamat dari simpul sebelumnya dan bagian pointer kanan merupakan
bagian yang berisi alamat dari simpul berikutnya
Double Linked list terbagi atas 2 :
• Non Circular Doubly Linked List
•
Circular Doubly Linked List
·
Deklarasi Doubly Linked List
typedef struct node
*simpul;
struct node
{
char Isi;
simpul kanan;
simpul kiri;
};
A. Operasi Pada Doubly
Linked List
a. Penyisipan Simpul
Penyisipan simpul adalah
operasi penyisipan suatu simpul baru ke dalam suatu Doubly Linked
List. Penyisipan dapat dilakukan di posisi depan,tengah, dan
belakang.
b. Penghapusan Simpul
Operasi menghapus
suatu simpul dari suatu Linked List pada Doubly Linked List hampir
sama dengan penghapusan simpul Singly Linked List, yaitu Linked List (DL)
tidak boleh dalam keadaan kosong. Penghapusan simpul juga dapat dilakukan terhadap simpul depan, simpul belakang, dan simpul tengah.
c. Pencetakan Simpul
void Cetak(simpul DL)
{
if(DL ==
NULL)
cout << “Linked List Kosong . . . . “
<<endl;
else
{
cout << “Isi Linked List : “;
while
(DL != NULL)
{
Cout
<< DL->Isi<<” “;
DL=DL->kanan;
}
}
}
d. Mencetak Linked List Secara Mundur
Mencetak
mundur artinya mencetak elemen Linked List mulai dari elemen
simpul belakang ke depan.
void Cetak_Mundur(simpul DL)
{
if(DL != NULL)
{
Cetak_Mundur(DL->kanan);
cout <<
DL->Isi<<” “;
}
}
Tidak ada komentar:
Posting Komentar