|
|
||||||||||||||||||||||||||||
巴赫曼模塊NT255
NT255
NT255定時器接口封裝
作為定時器,需要封裝以下4類接口給用戶使用:
其中執(zhí)行到期任務(wù)有兩種工作方式:
接下來將介紹分別用跳表、紅黑樹、時間輪來實現(xiàn)定時器。
跳表是一種動態(tài)的數(shù)據(jù)結(jié)構(gòu),采用空間換時間的思想,在有序鏈表基礎(chǔ)上加入多級索引,通過索引進行二分快速查找,支持快速刪除、插入和查找操作(平均時間復(fù)雜度為O(logN),最壞為O(N)),效率可與平衡樹媲美,實現(xiàn)比其簡單。
下面通過一張圖來簡單說明跳表操作。跳表的層即為基本的有序鏈表,存儲所有的數(shù)據(jù),可理解為數(shù)據(jù)層;往上則為索引層,理想狀態(tài)下,上一層為下一層節(jié)點數(shù)的一半。比如,要查找下圖的數(shù)據(jù)為11的節(jié)點,從begin''出發(fā),向右走,如果下一個節(jié)點大于11則往下走,直到找到目標節(jié)點。可見,跳表要比原始鏈表少比較一些節(jié)點,但前提是需要花更多空間存儲索引節(jié)點。