Apakah ada struktur data untuk mempertahankan daftar yang diurutkan yang mendukung operasi berikut dalam waktu diamortisasi?
GetElement (k) : Mengembalikan elemen ke- dari daftar.
InsertAfter (x, y) : Masukkan elemen baru y ke dalam daftar segera setelah x.
Hapus (x) : Hapus x dari daftar.
Untuk dua operasi terakhir, Anda dapat mengasumsikan bahwa x diberikan sebagai pointer langsung ke struktur data; InsertElement mengembalikan pointer yang sesuai untuk y. SisipkanAfter (NULL, y) memasukkan y di awal daftar.
Misalnya, dimulai dengan struktur data kosong, operasi berikut memperbarui daftar yang dipesan seperti yang ditunjukkan di bawah ini:
- InsertAfter (NULL, a) [Sebuah]
- SisipkanSetelah (NULL, b) [b, a]
- SisipkanSetelah (b, c) [b, c, a]
- SisipkanSetelah (a, d) [b, c, a, d]
- Hapus (c) [buruk]
Setelah lima pembaruan ini, GetElement (2) akan kembali d, dan GetElement (3) akan mengembalikan kesalahan.