linked list
Linked List
Linked List terdiri dari :
1.Single Linked List
Single linked list merupakan linked list yang hanya mempunyai satu pointer. Pointer tersebut menunjuk ke node selanjutnya. Field pada tail menunjuk ke NULL.
Example:
struct tnode {
int value;
struct tnode *next;
};
struct tnode *head = 0;
Note:Head adalah pointer untuk elemen pertama di linked list kita
Insert di linked list
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 node baru di depan head
Contoh:
struct tnode *node =
(struct tnode*) malloc(sizeof(struct tnode));
node->value = x;
node->next = head;
head = node;
Note:Operator( ->)Punya arti yang sama dengan:
(*node).value = x;
(*node).next = head;
Delete di linked list
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.
2.Polynomial Representation
Polinomial diberikan sebagai 6x3 + 9x2 + 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.
3.Circular single linked list
Merupakan sebuah single linked list yang pointer nextnya menunjuk ke dirinya sendiri. Tetapi, pointer next pada node terakhir akan menunjuk ke node terdepan jika single linked list tersebut terdiri dari beberapa node.
4.Doubly linked list
Sebuah linked list yang mempunyai file pointer yang terdiri dari dua buah dan dua arah. Prev dan next.
Insert di double linked list
Sama seperti dalam satu linked list, pertama kita harus mengalokasikan
node baru dan tetapkan nilainya ke sana, lalu kita
hubungkan node dengan linked list yang ada.
Seharusnya kita ingin menambahkan node baru di belakang tail.
Delete di double linked list
Ada 4 kondisi yang harus kita perhatikan saat menghapus:
1.Node yang akan dihapus adalah satu-satunya simpul dalam linked list.
2.Node yang akan dihapus adalah kepala.
3.Node yang akan dihapus adalah ekor.
4.Node yang akan dihapus bukan kepala atau ekor.
5.Circular double linked list
Sebuah linked list yang menggunakan pointer dan setiap node memiliki 3 field. 1 field pointer yang menunjuk pointer berikutnya, 1 field yang menunjuk pointer sebelumnya dan field yang berisi data untuk node itu sendiri
6.Header linked list
Sebuah linked list yang selalu mempunyai special node yang disebut header node pada awal listnya.
Linked List terdiri dari :
1.Single Linked List
Single linked list merupakan linked list yang hanya mempunyai satu pointer. Pointer tersebut menunjuk ke node selanjutnya. Field pada tail menunjuk ke NULL.
Example:
struct tnode {
int value;
struct tnode *next;
};
struct tnode *head = 0;
Note:Head adalah pointer untuk elemen pertama di linked list kita
Insert di linked list
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 node baru di depan head
Contoh:
struct tnode *node =
(struct tnode*) malloc(sizeof(struct tnode));
node->value = x;
node->next = head;
head = node;
Note:Operator( ->)Punya arti yang sama dengan:
(*node).value = x;
(*node).next = head;
Delete di linked list
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.
2.Polynomial Representation
Polinomial diberikan sebagai 6x3 + 9x2 + 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.
3.Circular single linked list
Merupakan sebuah single linked list yang pointer nextnya menunjuk ke dirinya sendiri. Tetapi, pointer next pada node terakhir akan menunjuk ke node terdepan jika single linked list tersebut terdiri dari beberapa node.
4.Doubly linked list
Sebuah linked list yang mempunyai file pointer yang terdiri dari dua buah dan dua arah. Prev dan next.
Insert di double linked list
Sama seperti dalam satu linked list, pertama kita harus mengalokasikan
node baru dan tetapkan nilainya ke sana, lalu kita
hubungkan node dengan linked list yang ada.
Seharusnya kita ingin menambahkan node baru di belakang tail.
Delete di double linked list
Ada 4 kondisi yang harus kita perhatikan saat menghapus:
1.Node yang akan dihapus adalah satu-satunya simpul dalam linked list.
2.Node yang akan dihapus adalah kepala.
3.Node yang akan dihapus adalah ekor.
4.Node yang akan dihapus bukan kepala atau ekor.
5.Circular double linked list
Sebuah linked list yang menggunakan pointer dan setiap node memiliki 3 field. 1 field pointer yang menunjuk pointer berikutnya, 1 field yang menunjuk pointer sebelumnya dan field yang berisi data untuk node itu sendiri
6.Header linked list
Sebuah linked list yang selalu mempunyai special node yang disebut header node pada awal listnya.
Comments
Post a Comment