Rabu, 04 Maret 2020

Double Linked List


Double Linked List

Struktur Double Linked List

Contoh isi struct di double linked list:
Struct mhs{
Int score;
Char nama[100];
Struct mhs *next;
Struct mhs *prev;
}*head,*tail,*curr;

Double Linked List untuk Masukkan data dari depan(Insert depan)
jika curr->nilai  < head->nilai
Data lama
 



Data baru mau ditambahkan

Disambung dengan data lama

curr ->next = head;

head -> prev = curr;

head = curr; (artinya nilai curr = head)
head -> prev = NULL;
tail -> next = NULL;


Double Linked List untuk Masukkan data dari tengah(Insert tengah)
jika curr->nilai  > tail->nilai
tail->next = curr;
curr->prev = tail;
tail = curr;
tail->next = NULL;

Double Linked List untuk masukkan data dari belakang(insert belakang)
temp = head;
while(temp->next->score){
temp = temp->next;   
}
curr->next = temp->next;
temp->next=curr;
Cat : karena ada temp maka harus dideklarasi nanti dengan struct … *temp;

Hapus depan (jika head->nilai ==x)
curr = head;
head = head->next;
free(curr);
head->prev = NULL;
                                                                                                                    
Hapus tengah (jika tail->score == x)        
curr = tail->prev;
free(tail);
tail = curr;
tail->next = NULL;

Hapus Belakang
curr=head;
while(curr->score!=x){
curr= curr->next;
}
curr->prev->next=curr->next;
curr->next->prev=curr->prev;
free(curr);



Sumber : dari kelas kecil(Lab) data structure

Tidak ada komentar:

Posting Komentar