[英]What is considered a leaf in red black trees?
我正在研究CLRS 的紅黑樹。 我有兩個關於討論紅黑樹屬性的部分的問題。 來自CLRS的段落如下:
紅黑樹是滿足以下紅黑性質的二叉樹:
每個節點要么是紅色要么是黑色
根是黑色的
每片葉子(NIL)都是黑色的
如果一個節點是紅色的,那么它的兩個孩子都是黑色的
對於每個節點,從節點到后代葉子的所有簡單路徑都包含相同數量的黑色節點
首先,它說紅黑樹是二叉樹。 為什么他們不說紅黑樹是二叉搜索樹。 我認為紅黑樹的全部目的是保持搜索樹中的平衡以確保logN操作。 其次,為什么紅黑樹的葉子是NIL ?
在常規的二叉樹中,我們習慣於這樣:
4
5 7
3 2 Nil Nil
Nil Nil Nil Nil
在這種情況下,3、2 和 7 是葉子。 為什么葉子在 CLRS 中被描述為 Nil's?
在書中,他們將紅黑樹稱為二叉搜索樹,就在本章的開頭。
同樣在本章中,它們表示標記為nil
的節點是實際節點(稱為sentinels ),具有與普通節點相同的字段,但具有固定值“黑色”的color
字段(其他字段可以設置為任意值) ; 這些節點總是在樹中顯示為葉子。 所以它不同於通常的 BST,其中葉子是一個節點,其左子樹和右子樹都是nil
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.