Materi
Sebuah kedai kopi mengganti buku catatan kasirnya dengan program kecil. Pemiliknya menyebut tiga kebutuhan. Pesanan dibuat oleh pelanggan dan disajikan sesuai urutan pesan. Kasir sering salah ketik dan menekan tombol BATAL untuk menghapus item terakhir yang ia masukkan. Riwayat pesanan disimpan dengan pesanan terbaru di depan, tetapi laporan harian butuh pesanan terlama di depan.
Tiga kebutuhan itu tampak mirip karena semuanya daftar, tetapi urutan pengambilannya berbeda. Yang pertama mengambil yang paling lama menunggu, yang kedua mengambil yang paling baru, dan yang ketiga membalik urutan seluruh rantai. Misi ini meminta struktur yang tepat untuk setiap kebutuhan, lalu menuliskannya.
| Kebutuhan | Data yang diambil | Pertanyaan pemilihnya |
|---|---|---|
| Penyajian pesanan | Yang paling lama menunggu | Siapa yang datang lebih dulu? |
| Tombol BATAL kasir | Yang paling baru dimasukkan | Apa yang terakhir diketik? |
| Laporan harian | Seluruh rantai, urutan terbalik | Bagaimana membalik rujukan? |
Peristiwa dicatat sebagai tuple. Pesanan masuk ditulis ("pesan", nama) dan penyajian ditulis ("saji",). Kasir memasukkan harga item sebagai bilangan bulat atau kata BATAL. Riwayat pesanan memakai kelas Simpul yang sama dengan pelajaran senarai berkait, dengan atribut nilai dan berikut.