Có cấu trúc dữ liệu để duy trì danh sách theo thứ tự hỗ trợ các hoạt động sau trong thời gian khấu hao không?
GetEuity (k) : Trả về phần tử thứ của danh sách.
ChènAfter (x, y) : Chèn phần tử y mới vào danh sách ngay sau x.
Xóa (x) : Xóa x khỏi danh sách.
Đối với hai thao tác cuối cùng, bạn có thể giả sử rằng x được đưa ra dưới dạng con trỏ trực tiếp vào cấu trúc dữ liệu; ChènEuity trả về con trỏ tương ứng cho y. ChènAfter (NULL, y) chèn y vào đầu danh sách.
Ví dụ: bắt đầu với cấu trúc dữ liệu trống, các thao tác sau sẽ cập nhật danh sách theo thứ tự như dưới đây:
- Chèn sau (NULL, a) [a]
- Chèn sau (NULL, b) [ba]
- ChènSau khi (b, c) [b, c, a]
- ChènSau khi (a, d) [b, c, a, d]
- Xóa (c) [xấu]
Sau năm bản cập nhật này, GetEuity (2) sẽ trả về d và GetEuity (3) sẽ trả về lỗi.