Pada pertemuan hari ini tanggal 3 Maret 2020, saya mempelajari bagaimana cara men-coding single linked list dari push depan, push belakang, pop depan. Push depan adalah ketika kita ingin mengisi data dari urutan depan, sedangkan push belakang ketika kita ingin mengisi data dari urutan belakang.
Ilustrasi single linked list:
Nah pop disini diartikan sebagai menghapus data. Berhubung materi kali ini masih membahas single linked list, maka kita hanya bisa menghapus data dari depan saja.
Nah, tadi di kelas besar, kami diajarkan cara membuat code nya, berikut code nya;
Untuk pertama tama, kita membuat contoh struct nya
struct data
{
int angka;
struct data *next;
}*head,*tail,*curr;
ini contoh coding untuk buat function pushdepan (mengisi data dari urutan paling depan)
void pushdpn(int a){
curr = (struct data*) malloc(sizeof(struct data));
curr->angka = a;
if (head==NULL)
{
head=tail=curr;
tail->next=NULL;
}
else
{
curr->next=head;
head=curr;
}
}
ini contoh coding untuk buat function pushbelakang (mengisi data dari urutan paling belakang)
void pushblkg(int a)
{
curr=(struct data*) malloc (sizeof(struct data));
curr->angka=a;
if (head==NULL)
{
head=tail=curr;
tail->next=NULL;
}
else
{
tail->next=curr;
tail=curr;
tail->next=NULL;
}
}
ini contoh coding untuk pop (hapus) dari urutan depan
void pop(int a){
curr=head;
if (curr->angka==a)
{
if (head!=NULL)
{
curr=head;
head=head->next;
free(curr);
}
}
else
{
while (curr->next->angka!=a)
{
curr=curr->next;
}
struct data *temp;
temp=curr->next;
curr->next=temp->next;
free(temp);
}
}
Dan dalam Single linked list kita juga butuh untuk cetak satu-persatu data nya, oleh sebab itu daripada kita print 1 per 1 tiap datanya, kita dapat menggunakan while looping, dengan cara pertama tama arahkan current ke posisi head. Lalu jika current belum sampai ujung/NULL, maka dia akan looping
void cetak()
{
curr=head;
while(curr!=NULL)
{
printf("%d ", curr->angka);
curr=curr->next;
}
}
Nah setelah ini kita bisa coba apakah codingan kita bekerja atau tidak dengan cara mengisi di function main nya
seperti ini:
int main (){
pushdpn(10);
pushblkg(100);
pushblkg(40);
pushdpn(200);
pop(100);
cetak();
return 0;
}
Jadi nanti output nya adalah: 200, 10, 40 ... angka 100 nya menghilang karena ada pop di value angka 100

Tidak ada komentar:
Posting Komentar