2)刪除時
2.1)如果已經沒有結點了不處理。
2.2)如果只有乙個結點了,返回它。
2.3)如果還有多個結點
雙向佇列隊尾元素出隊,將其作為尾結點。
如果尾結點是其父結點的右孩子,那麼將其父結點從雙向佇列的隊頭入隊。(因為這個父結點可以作為下乙個新結點的父結點了)
交換頂點與尾結點item屬性值。
解除尾結點與其父結點的父子關係(尾結點是左孩子時清空父結點的左指向,尾結點是右孩子時清空父結點的右指向,清空尾結點的父指向)
頂點sink(),sink中的交換只交換結點的item屬性值。
返回頂點。
題目 BZOJ 4242 水壺
題目大意 某市是乙個被分成h w h times w h w塊區域的長方形,每個區域都是建築物 原野 牆壁之一。建築物的區域有p pp個,編號為1 p 1 dots p 1 p。只有建築物和原野能夠進入,而且每次只能走到相鄰的區域中,且不能移動到市外。現在需要在各個建築物之間往返。在原野上每走過乙個...
Algs4 1 5 17隨機連線
1.5.17隨機連線。設計uf的乙個用例 erdosrenyi,從命令列接受乙個整數n,在0到n 1之間產生隨機整數對,呼叫connected 判斷它們是否相連,如果不是則呼叫union 方法 和我們的開發用例一樣 不斷迴圈直到所有觸點均相互連通並列印出生成的連線總數。將你的程式打包成乙個接受引數n...
Algs4 1 3 31隨機連線
1.3.31隨機連線。編寫一段程式,從命令列接受乙個整數n和double值p 0到1之間 作為引數,在乙個圓上畫出大小為0.05且間距相等的n個點,然後將每對點按照概率p用灰線連線。public class test for int i 0 i points.length i for int j 0...