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