tree
依然是移植自linux內核,作了小改動,使其可使用vs編譯並在windows上運行。node
- rb_tree 移植自linux內核, windows平臺可用
- avl_tree 上學時的練習代碼
函數
- rb_set_parent 設置父節點的地址
- rb_set_color 設置節點顏色
- rb_init_node 初始化節點
- rb_insert_color 設置新插入節點的顏色
- rb_erase 刪除一個節點
- rb_next 返回當前節點的下一個節點
- rb_prev 返回當前節點的上一個節點
- rb_first 返回第一個葉子節點(也就是最左邊的葉子節點)
- rb_last 返回最後一個葉子節點(也就是最右邊的葉子節點)
- rb_replace_node 替換rbtree中的一個node(只是簡單的替換,沒有管替換的顏色對不對,數據的順序對不對)
宏
- rb_parent 獲取父節點的地址
- rb_color 節點的顏色
- rb_is_red 是否紅節點
- rb_is_black 是否黑節點
- rb_set_red 設置節點爲紅色
- rb_set_black 設置節點爲黑色
- RB_ROOT 初始化根節點
- rb_entry 獲取包含rbtree node的struct
- RB_EMPTY_ROOT 判斷是否只有根節點
- RB_EMPTY_NODE 判斷節點是否剛初始化,尚未加到樹中
- RB_CLEAR_NODE 設置節點的父節點也指向本身
下載連接:https://github.com/xieweihua/Data-structure-and-algorithm/tree/master/treelinux