Singly Linked List Menggunakan Bahasa Pemrograman C

18:51 Pemrograman Web 0 Comments



Assalamualaikum wr.wb.

Pada kesempatan kali ini saya akan menjelaskan tentang Singly Linked List. Tapi sebelumnya apa sih linked list itu?
Linked list atau senarai berantai merupakan simpul atau node yang saling berkaitan dengan simpul yang lain nya dengan mengunakan bantuan pointer. Biasanya dalam Linked list itu terdapat Head and Tail:
  • Head merupakan istilah untuk elemen yang berada paling awal (posisi pertama) dalam sebuah linked list. Sedangkan
  • Tail merupakan istilah untuk elemen yang berada paling akhir (posisi terakhir) dalam sebuah linked list.

Singly Linked List adalah Linked list yang menggunakan variable pinter saja, yang dimana variable ini mengarahkan ke node selanjutnya. Node dalam linked list dihubungkan bersama menggunakan kolom berikutnya, yang menyimpan alamat dari node berikutnya di bidang berikutnya dari node sebelumnya yaitu setiap node dari daftar mengacu pada penggantinya dan node terakhir (tail) berisi referensi NULL. 

Singly Linked List ada 2 yaitu:
  • Single Linked List Circular
  • Single Linked List Non Circular

Operasi dasar dari daftar Singly Linked List adalah:
  • Insert - Menyisipkan elemen baru pada akhir daftar.
  •  Delete - Menghapus setiap node dari daftar.
  • Find - Mencari setiap node dalam daftar.
  •  Print - Mencetak daftar.

Fungsinya:
  • Insert - Fungsi ini mengambil start node dan data yang akan dimasukkan sebagai argumen. node baru dimasukkan di akhir sehingga, iterate melalui daftar sampai kita menemukan node terakhir. Kemudian, mengalokasikan memori untuk node baru dan menempatkan data di dalamnya. Terakhir, menyimpan alamat di kolom berikutnya dari node baru sebagai NULL.
  • Delete - Fungsi ini mengambil start simpul (sebagai pointer) dan data yang akan dihapus sebagai argumen. Pertama, pergi ke node yang node sebelahnya harus dihapus, IF(jika) node poin ke NULL (yaitu pointer-> berikutnya = NULL) maka elemen yang akan dihapus tidak hadir dalam daftar. Else(lain), sekarang pointer poin ke node dan node sebelahnya harus dikeluarkan, menyatakan node sementara (temp) yang menunjuk ke node yang harus dikeluarkan. Menyimpan alamat dari node sebelah node sementara di depan bidang pointer simpul (pointer-> berikutnya = temp-> berikutnya). Jadi, menghapus simpul yang terletak di sebelah pointer (yang juga temp). Karena kita telah menghapus node, kita tidak lagi memerlukan memori yang digunakan untuk itu, gratis () akan deallocate memori.
  • Find - Fungsi ini mengambil start simpul (sebagai pointer) dan nilai data node (key) dapat ditemukan sebagai argumen. simpul pertama adalah boneka simpul begitu, mulai dengan simpul kedua. Iterate melalui seluruh daftar link dan mencari kuncinya. Until (sampai) kolom berikutnya dari pointer adalah sama dengan NULL, memeriksa apakah pointer-> data = kunci. Jika kemudian kunci ditemukan lagi, pindah ke node berikutnya dan pencarian (pointer = pointer -> berikutnya). Jika kunci tidak ditemukan return 0, lain kembali 1.
  • Print - fungsi mengambil node awal (sebagai pointer) sebagai argumen. Jika pointer = NULL, maka tidak ada elemen dalam daftar. Lain, mencetak nilai data node (pointer-> data) dan bergerak ke node berikutnya dengan rekursif memanggil fungsi print dengan pointer-> selanjutnya dikirim sebagai argumen.

Kelebihan dan Kekurang Singly Linked List:
  • Kelebihan: Memiliki kemampuannya untuk memperluasmenerima jumlah node yang hampir tak terbatas dalam lingkup memori terfragmentasi.
  • Kekurangan: yaitu masalah kecepatan. Operasi dalam singly linked list lambat, karena menggunakan pencarian sekuensial untuk menemukan node.
Github Single Linked List


Nama: Ayu Anggara
NPM: 1144014


0 komentar: