Nama saya Roland, Saya binusian 21 pada tgl 27-02-2018 adalah mengenal lebih dalam mengenai Linked List yaitu Linked list implementation, Pengenalan Linked list telah dibahas pada sesi sebelumnya
Single Linkedlist adalah jenis daftar tertaut yang paling sederhana di mana setiap node berisi data yang sama dan pointer ke simpul berikutnya dari tipe data yang sama.
Sedangkan Double Linkedlist adalah Sama seperti dalam satu linked list, pertama kita harus mengalokasikan simpul baru dan tetapkan nilainya ke sana, lalu kita hubungkan node dengan linked list yang ada.
Single Linkedlist---->Insert
Untuk menyisipkan nilai baru, pertama kita harus mengalokasikan node baru secara dinamis dan memberikan nilai padanya dan kemudian menghubungkannya dengan linked list yang ada.
Seharusnya kita ingin menambahkan simpul baru di depan kepala.
struct tnode * node =
(struct tnode *) malloc (sizeof (struct tnode));
node-> nilai = x;
node-> next = head;
kepala = simpul;
Single Linkedlist---->Delete
Untuk menghapus sebuah nilai, pertama kita harus mencari lokasi
node yang menyimpan nilai yang ingin kita hapus, keluarkan,
dan hubungkan sisa linked list.
Seharusnya nilai yang ingin kita hapus adalah x dan
dengan asumsi x ada dalam linked list dan unik.
Ada dua kondisi yang harus kita perhatikan:
Jika x berada dalam head node atau x tidak berada dalam head node.
-Polinomial Representation
Polinomial diberikan sebagai 6x^3 + 9x^2 +7x+ 1
Setiap istilah individu dalam polinom terdiri dari dua bagian, koefisien dan kekuatan
Di sini, 6, 9, 7, dan 1 adalah koefisien dari persyaratan yang masing-masing memiliki 3, 2, 1, dan 0 sebagai kekuatan masing-masing.
Setiap istilah polinomial dapat direpresentasikan sebagai simpul dari linked list.
-Circular Single Linked List
Secara sirkuler, node terakhir berisi pointer ke node pertama
Kita bisa memiliki daftar terkait melingkar dan juga daftar ganda yang saling terkait.
Tidak ada penyimpanan nilai NULL dalam daftar
-Double Linkedlist --->Insert
Sama seperti dalam satu linked list, pertama kita harus mengalokasikan
simpul baru dan tetapkan nilainya ke sana, lalu kita
hubungkan node dengan linked list yang ada.
Seharusnya kita ingin menambahkan simpul baru di belakang ekor.
struct tnode * node =
(struct tnode *) malloc (sizeof (struct tnode));
node-> nilai = x;
node-> next = NULL;
node-> prev = ekor;
tail-> next = node;
ekor = simpul;
Seharusnya kita ingin memasukkan simpul baru dalam posisi tertentu (apapun
lokasi antara kepala dan ekor)
struct tnode * a = ??;
struct tnode * b = ??;
// node baru akan dimasukkan antara a dan b
struct tnode * node =
(struct tnode *) malloc (sizeof (struct tnode));
node-> nilai = x;
node-> next = b;
node-> prev = a;
a-> next = node;
b-> prev = simpul;
Double Linkedlist ---->Delete
Ada 4 kondisi yang harus kita perhatikan saat menghapus:
Node yang akan dihapus adalah satu-satunya simpul dalam linked list.
Simpul yang akan dihapus adalah kepala.
Simpul yang akan dihapus adalah ekor.
Simpul yang akan dihapus bukan kepala atau ekor.
1. Jika simpul yang akan dihapus adalah satu-satunya simpul:
bebas (kepala);
kepala = NULL;
ekor = NULL;
2. Jika simpul yang akan dihapus adalah kepala:
kepala = kepala-> berikutnya;
bebas (kepala-> prev);
head-> prev = NULL;
3. Jika simpul yang akan dihapus adalah ekor:
ekor = ekor-> prev;
bebas (ekor-> berikutnya);
tail-> next = NULL;
Tidak ada komentar:
Posting Komentar