經典數據結構:紅黑樹

tree

    依然是移植自linux內核,作了小改動,使其可使用vs編譯並在windows上運行。node

  • rb_tree 移植自linux內核, windows平臺可用
  • avl_tree 上學時的練習代碼

函數

  1. rb_set_parent 設置父節點的地址
  2. rb_set_color 設置節點顏色
  3. rb_init_node 初始化節點
  4. rb_insert_color 設置新插入節點的顏色
  5. rb_erase 刪除一個節點
  6. rb_next 返回當前節點的下一個節點
  7. rb_prev 返回當前節點的上一個節點
  8. rb_first 返回第一個葉子節點(也就是最左邊的葉子節點)
  9. rb_last 返回最後一個葉子節點(也就是最右邊的葉子節點)
  10. rb_replace_node 替換rbtree中的一個node(只是簡單的替換,沒有管替換的顏色對不對,數據的順序對不對)

  1. rb_parent 獲取父節點的地址
  2. rb_color 節點的顏色
  3. rb_is_red 是否紅節點
  4. rb_is_black 是否黑節點
  5. rb_set_red 設置節點爲紅色
  6. rb_set_black 設置節點爲黑色
  7. RB_ROOT 初始化根節點
  8. rb_entry 獲取包含rbtree node的struct
  9. RB_EMPTY_ROOT 判斷是否只有根節點
  10. RB_EMPTY_NODE 判斷節點是否剛初始化,尚未加到樹中
  11. RB_CLEAR_NODE 設置節點的父節點也指向本身

下載連接:https://github.com/xieweihua/Data-structure-and-algorithm/tree/master/treelinux

相關文章
相關標籤/搜索