Kami memiliki satu set, , dari daftar elemen dari set N = { 1 , 2 , 3 , . . . , n } . Setiap elemen dari N muncul dalam satu daftar di L . Saya mencari struktur data yang dapat melakukan pembaruan berikut:
: menyatukan daftar yang berisi y ke akhir daftar yang berisi x
: membagi daftar yang berisi x langsung setelah x
Itu juga perlu melakukan pertanyaan berikut:
: mengembalikan t r u e jika x dan y ada dalam daftar yang sama dan y datang setelah x (tetapi tidak selalu berbatasan dengan x )
: mengembalikan elemen pertama dari daftar yang berisi x
: mengembalikan elemen berikutnya setelah x dalam daftar yang berisi x
Saya sudah datang dengan struktur data yang melakukan update ini di dan pertanyaan di O ( l g ( n ) ) waktu. Saya sebagian besar tertarik pada apakah sudah ada struktur data yang dapat melakukan ini (mudah-mudahan lebih cepat?).
Motivasi: hutan terarah yang berakar dapat diwakili dengan dua set daftar ini dan memungkinkan perhitungan yang cepat dari jangkauan di hutan tersebut. Saya ingin melihat apa lagi yang dapat mereka gunakan dan jika semua ini sudah diketahui.