Insertion and Deletion Linked List
Halo teman-teman, pada kesempatan kali ini saya ingin berbagi tentang Insertion dan Deletion pada Linked List yang telah saya pelajari hari ini. (Konsep Stack)
Insertion berarti memasukan data dan biasa disebut dalam fungsi "push()". Sedangkan Deletion berarti menghapus data dan biasa disebut dalam fungsi "pop()".
Insertion berarti memasukan data dan biasa disebut dalam fungsi "push()". Sedangkan Deletion berarti menghapus data dan biasa disebut dalam fungsi "pop()".
Single Linked List
Dalam Single Linked List yang harus kita ingat konsepnya adalah "Head - Tail" dengan Tail yang menuju ke NULL . Lalu terdapat variabel "Current" yaitu data yang ingin kita sisipkan / tambah.
Dalam Linked List ini terdapat berbagai macam cara Insertion dan Deletion.
1. Push Head : berarti menambahkan data dari depan.
Misalkan kita mempunyai sebuah struct :
Berikut adalah contoh code Push Tail dalam single linked list:
Berikut adalah contoh code Pop Head dalam single linked list:
Berikut adalah contoh code Pop dalam single linked list:
Dalam Linked List terdapat berbagai macam cara Insertion dan Deletion.
1. Push Head : berarti menambahkan data dari depan.
Misalkan kita mempunyai sebuah struct :
Berikut merupakan contoh code untuk Push Tail pada double linked list:
Berikut merupakan contoh code Push Mid pada double linked list:
Berikut merupakan contoh code Pop Head dalam double linked list:
Berikut merupakan contoh code Pop Tail dalam double linked list:
Berikut merupakan contoh code Pop dalam double linked list:
Sekian materi yang dapat saya bagikan, Terima Kasih dan Selamat Belajar 😄
1. Push Head : berarti menambahkan data dari depan.
Misalkan kita mempunyai sebuah struct :
Berikut adalah contoh code Push Head dalam single linked list:struct data{int angka;struct data*next;}*head,*tail,*curr;
2. Push Tail : berarti menambahkan data dari belakang.void pushHead(int angka){curr = (struct data*) malloc (sizeof (struct data));curr->angka = angka;if(head == NULL){head = tail = curr;tail->next = NULL;}else{curr->next = head;head = curr;}}
Berikut adalah contoh code Push Tail dalam single linked list:
3. Pop Head : berarti menghilangkan data yang berada di depan.void pushTail(int angka){curr = (struct data*) malloc (sizeof (struct data));curr->angka = angka;if(head == NULL){head = tail = curr;tail->next = NULL;}else{tail->next = curr;tail = curr;tail->next = NULL;}}
Berikut adalah contoh code Pop Head dalam single linked list:
void popHead(){
if(head!=NULL){
curr = head;
head = head->next;
free(curr);
}
}4. Pop : berarti menghilangkan data yang kita inginkan.
Berikut adalah contoh code Pop dalam single linked list:
void pop(int angka){
curr = head;
if(curr->angka == angka) popHead();
else{
while(curr->next->angka != angka){
curr = curr->next;
}
struct data*temp;
temp = curr->next;
curr->next = temp->next;
free(temp);
}
}
Double Linked List
Dalam Double Linked List yang harus kita ingat konsepnya adalah "Head - Tail" dengan Head yang sebelumnya menuju ke NULL dan Tail yang juga setelahnya menuju ke NULL.Dalam Linked List terdapat berbagai macam cara Insertion dan Deletion.
1. Push Head : berarti menambahkan data dari depan.
Misalkan kita mempunyai sebuah struct :
Berikut merupakan contoh code untuk Push Head dalam double linked list:struct data{int angka;struct data*next, *prev;}*head, *tail, *curr;
void pushHead(int angka){
curr = (struct data*) malloc (sizeof(struct data));
curr->angka = angka;
if(head==NULL) head = tail = curr;
else{
curr->next = head;
head->prev = curr;
head = curr;
}
tail->next = head->prev = NULL;
}2. Push Tail : berarti menambahkan data dari belakang.
Berikut merupakan contoh code untuk Push Tail pada double linked list:
void pushTail(int angka){
curr = (struct data*) malloc (sizeof(struct data));
curr->angka = angka;
if(head==NULL) head = tail = curr;
else {
tail->next = curr;
curr->prev = tail;
tail = curr;
}
tail->next = head->prev = NULL;
}3. Push Mid : berarti menyisipkan data dari tengah (digunakan untuk mengurutkan data).
Berikut merupakan contoh code Push Mid pada double linked list:
void push(int angka){
curr = (struct data*) malloc (sizeof(struct data));
curr->angka = angka;
if(head==NULL) head = tail = curr;
else if(curr->angka < head->angka) pushHead(angka);
else if(curr->angka > tail->angka) pushTail(angka);
else{
struct data*temp;
temp = head;
while (temp->next->angka < curr->angka) temp = temp->next;
curr->next = temp->next;
temp->next->prev = curr;
temp->next = curr;
curr->prev = temp;
}
}4. Pop Head : berarti menghapus data yang berada di depan.
Berikut merupakan contoh code Pop Head dalam double linked list:
5. Pop Tail : berarti menghapus data yang berada di belakang.void popHead(){curr = head;head = head->next;free(curr);head->prev = NULL;}
Berikut merupakan contoh code Pop Tail dalam double linked list:
void popTail(){
curr = tail;
tail = tail->prev;
free(curr);
tail->next = NULL;
}6. Pop : berarti menghilangkan data yang kita inginkan.
Berikut merupakan contoh code Pop dalam double linked list:
void pop(int angka){
if(head->angka == angka) popHead();
else if(tail->angka == angka) popTail();
else{
struct data*temp = head;
while(temp->next->angka!=angka) temp = temp->next;
curr = temp->next;
temp->next = curr->next;
curr->next->prev = temp;
free(curr);
}
}
Sekian materi yang dapat saya bagikan, Terima Kasih dan Selamat Belajar 😄


Comments
Post a Comment