演算法導論第七天學習筆記

2021-09-25 03:32:28 字數 1530 閱讀 8269

每個節點或是紅色的,或是黑色的。

根節點是黑色的。

每個葉節點(nil)是黑色的。

如果乙個節點是紅色的,則它的兩個子節點都是黑色的。

對每個節點,從該節點到其所有後代葉節點的簡單路徑上,均包含相同數目的黑色節點。

一顆有n個內部節點的紅黑樹的高度至多為2lg(n+1)。

左旋和右旋

left-

rotate

(t, x)

: y = x.right

x.right = y.left

if y.left != t.nil

y.left.p = x

y.p = p

if x.p == t.nil

t.root = y

else

if x == x.p.left

x.p.left = y

else

x.p.right == y

y.left = x

x.p = y

rb-

insert

(t, z)

: y = t.nil

x = t.root

while x != t.nil

y = x

if z.key < x.key

x = x.left

else

x = x.right

z.p = y

if y == t.nil

t.root = z

else

if z.key < y.key

y.left = z

else

y.right = z

z.left = t.nil

z.right = t.nil

z.color = red

rb-insert-

fixup

(t, z)

rb-insert-

fixup

(t, z):

while z.p.color == red

if z.p = z.p.p.left

y = z.p.p.right

if y.color == red

z.p.color = black

y.color = black

z.p.p.color = red

z = z.p.p

else

if z == z.p.right

z = z.p

left-

rotate

(t, z)

z.p.color = black

z.p.p.color = red

right-

rotate

(t, z.p.p)

else

(same as then clause with "right" and "left" exchanged)

t.root.color = black

第七天筆記

理解 陣列的基本概念 理解 陣列的分類 陣列的幾個名詞 陣列的應用場景 按維度分類 掌握 定義陣列 掌握 初始化陣列 掌握 陣列的使用 指定陣列的元素個數,對陣列進行部分顯式初始化 不指定元素個數,定義的同時初始化,它是根據大括號中的元素的個數來確定陣列的元素 個數 int nums 指定元素個數,...

第七天學習

練習題 1 以下類定義中哪些是類屬性,哪些是例項屬性?class c num 0 def init self self.x 4 self.y 5 c.count 62 怎麼定義私有 法?3 嘗試執行以下 並解釋錯誤原因 4 按照以下要求定義乙個遊樂園門票的類,並嘗試計算2個 1個小孩平日票價。要求 ...

react第七天學習筆記

1.antd 是基於ant design設計體系的ui元件庫 0 1 antd環境的配置 const require customize cra module.exports override fixbabelimports import 2 將ui元件環境語言設為中文 import zhcn fr...