迴圈佇列和樹的計算公式
2018/9/20 19:56:17
迴圈佇列的計算公式:
設front為隊首指標,rear為隊尾指標,m為佇列最大容量。
入隊: rear = (rear + 1) % m
出隊: front = (front + 1) % m
隊空: front = rear
隊滿: front = (rear + 1) % m
當前佇列中的元素數目: n = (rear - front + m) % m
--------------------------------------------------------------------------------------------------------
對於一個二叉樹,如下圖所示:
我們可以有下面的假設,設葉子節點個數為n0,度為1的節點個數為n1,度為2的節點個數為n2。
那麼就有:n0+n1+n2=n
又由於除了根節點以外,每一個結點都佔有一個邊,(邊的個數=點的個數-1)
那麼就有:n-1=2n2+n1
綜合上面的兩個公式得到:
葉子結點和二度結點數目關係:n0=n2+1
--------------------------------------------------------------------------------------------------------------------------
如果這是一個完全二叉樹,那麼一度結點的個數是有限的,要麼為0要麼為1。所以可以最後得到結點總數目和葉子結點的關係:
(1)當n1=0時,n=2n0-1所以n0=(n+1)/2。這裡的n為奇數。
(2)當n1=1時,n=2n0所以n0=n/2。這裡的n為偶數。
綜上所述:
對於完全二叉樹,葉子結點和結點總數的關係是:
一個具有n個節點的完全二叉樹,其葉子節點的個數n0為: (n+1)/2 向下取整。