Stack and Queue
Stack and Queue
Yang pertama kita akan membicarakan tentang Stack. Stack itu apa menurut kalian? menumpuk bukan? sebelum menumpuknya sesuatu barang perlunya apa? yang pastinya adalah masukan dari luar barang tersebut. Jadi Stack adalah tumpukan data yang terdapat pada suatu program dimana kita harus menekan tumpukan data tersebut, baik dari atas maupun dari bawah. Stack dapat dianalogikan sebagai susunan piring dimana piring yang pertama kali masuk akan menjadi piring paling terakhir keluar.
Jadi disini kita dapat mengetahui stack sebagai PushHead, berikut adalah source codenya:
Jadi konsep Stack seperti diatas ini.
Bagaimana dengan Queue? Queue adalah cara dimana mengambil konsep pengantrian dalam suatu tempat. Jadi data yang paling pertama datang akan keluar paling cepat sama juga seperti pengantrian membeli makan. Oleh karena itu kita akan meletakan data tersebut dipaling belakang dalam linked list, sehingga kita akan memainkan pushTail di sini dengan point Tail.
Jadi bagaimana dengan pop atau delete? Delete data sering dikatakan di kampus gw sebagai pop, jadi kurang tau yah kalau diluar bilangnya apa. Jadi pop ada 3 macam yaitu pophead(menghapus data paling atas),poptail(menghapus data paling bawah),dan popmid(menghapus data sesuai pencarian).
Algorithmnya itu:
untuk pophead: 1. lu pertama tampung terlebih dahulu data setelah head yang mana akan dijadikan sebagai head baru.
2. lu pop head dengan cara free(head) dimana headnya dengan datanya akan hilang
3. lu ambil tampungan data setelah head lama untuk dijadikan data baru, selesai.
untuk poptail: 1. lu linearsearch dulu satu satu sampai data->next adalah tail.
2. lu pop si tail dengan cara free(tail) lalu tinggal jadiin data jadi tail baru, selesai.
untuk popmid: 1. lu linearsearch dulu sampai data tersebut ketemu jadi harus ada pointer baru untuk ngecek data yang sekarang, jadi kita mainkan pointer *curr dimana dia akan terus data seterusnya apabila data ga ditemukan sehingga curr = curr->next.
2. yaudah setelah ketemu tinggal lu pop aja, tapi ingat sebelumnya, lu harus nampung data sebelumnya ke dalam pointer *temp agar dan sambungkan temp dengan data setelah yang dicari, done. selamat menyoba.
Bagaimana dengan Queue? Queue adalah cara dimana mengambil konsep pengantrian dalam suatu tempat. Jadi data yang paling pertama datang akan keluar paling cepat sama juga seperti pengantrian membeli makan. Oleh karena itu kita akan meletakan data tersebut dipaling belakang dalam linked list, sehingga kita akan memainkan pushTail di sini dengan point Tail.
Jadi bagaimana dengan pop atau delete? Delete data sering dikatakan di kampus gw sebagai pop, jadi kurang tau yah kalau diluar bilangnya apa. Jadi pop ada 3 macam yaitu pophead(menghapus data paling atas),poptail(menghapus data paling bawah),dan popmid(menghapus data sesuai pencarian).
Algorithmnya itu:
untuk pophead: 1. lu pertama tampung terlebih dahulu data setelah head yang mana akan dijadikan sebagai head baru.
2. lu pop head dengan cara free(head) dimana headnya dengan datanya akan hilang
3. lu ambil tampungan data setelah head lama untuk dijadikan data baru, selesai.
untuk poptail: 1. lu linearsearch dulu satu satu sampai data->next adalah tail.
2. lu pop si tail dengan cara free(tail) lalu tinggal jadiin data jadi tail baru, selesai.
untuk popmid: 1. lu linearsearch dulu sampai data tersebut ketemu jadi harus ada pointer baru untuk ngecek data yang sekarang, jadi kita mainkan pointer *curr dimana dia akan terus data seterusnya apabila data ga ditemukan sehingga curr = curr->next.
2. yaudah setelah ketemu tinggal lu pop aja, tapi ingat sebelumnya, lu harus nampung data sebelumnya ke dalam pointer *temp agar dan sambungkan temp dengan data setelah yang dicari, done. selamat menyoba.
Comments
Post a Comment