兩棵二叉樹之間的旋轉(zhuǎn)距離指的是, 其中一棵樹通過盡可能少的樹旋轉(zhuǎn)變換到另一棵樹, 此過程中所使用的旋轉(zhuǎn)次數(shù). 對(duì)于一個(gè)包含相同個(gè)數(shù)節(jié)點(diǎn)的二叉樹集合, 它們兩兩之間的距離可以構(gòu)成一個(gè)度量空間. 是否存在一個(gè)算法, 能在多項(xiàng)式時(shí)間內(nèi)計(jì)算兩個(gè)二叉樹之間的旋轉(zhuǎn)距離, 目前還是一個(gè)未決問題。
上面的圖示僅描述了如何進(jìn)行局部變換, 在實(shí)際應(yīng)用中, 還需要將原有父節(jié)點(diǎn)的父節(jié)點(diǎn)納入考慮范圍. 以上述右旋轉(zhuǎn)為例, 如果 Q 是其父節(jié)點(diǎn) root 的左子節(jié)點(diǎn), 則在旋轉(zhuǎn)完后 root 的左子節(jié)點(diǎn)需要修改指向節(jié)點(diǎn) P. 但這一點(diǎn)并沒有體現(xiàn)在上面的圖示中.
在接下來(lái)的實(shí)現(xiàn)中, 假設(shè)從樹中任一節(jié)點(diǎn) N 能夠借由 N.left 訪問其左子節(jié)點(diǎn), N.right 訪問其右子節(jié)點(diǎn), N.parent 訪問其父節(jié)點(diǎn). 此外, 稱旋轉(zhuǎn)后變?yōu)楦赣H的節(jié)點(diǎn)為轉(zhuǎn)軸pivot, 稱 pivot 在旋轉(zhuǎn)前的父節(jié)點(diǎn)為 parent, 而 parent 在旋轉(zhuǎn)前的父節(jié)點(diǎn)為 root. 則右旋轉(zhuǎn)過程可用偽代碼表示為:
funcrotate_right(pivot): letparent=pivot.parent letroot=parent.parent //R0 parent.left=pivot.right ifpivot.right!=nil:pivot.right.parent=parent //R1 pivot.parent=root ifparent==root.left: root.left=pivot else: root.right=pivot pivot.right=parent parent.parent=pivot
樹旋轉(zhuǎn)包括兩個(gè)不同的方式,分別是右旋轉(zhuǎn)(以P為轉(zhuǎn)軸)和左旋轉(zhuǎn)(以Q為轉(zhuǎn)軸)。兩種旋轉(zhuǎn)呈鏡像,而且互為逆操作。
下圖示意了兩種樹旋轉(zhuǎn)過程中, 子樹的初態(tài)和終態(tài):
--- --- |Q||P| --- --- /\rightrotation/\ --- --- -------------> --- --- |P||Z||X||Q| --- --- <------------- --- --- /\leftrotation/\ --- --- --- --- |X||Y||Y||Z| --- --- --- ---
其中, 右旋轉(zhuǎn)詳細(xì)步驟如下圖 R0, R1, R2 三個(gè)步驟所示, 左旋轉(zhuǎn)則如 L0, L1, L2 三個(gè)步驟所示。
__ /\ --- / --- |Q|/|Q| --- --- --- / --- --- |P|/\R1|P|//\ --- |Q|R0 --- / --- -----> --- / --- R2|P| --- ----->/\/|Z|//|Z|-----> --- /\ --- --- --- --- --- --- /\ --- --- |X||Y||X||Y| --- --- |P||Z| --- --- --- --- |X||Q| --- --- __ --- --- /\/\/\ --- --- L2 --- \ --- L0 --- --- |X||Y|<-----|P|\|P|<-----|Y||Z| --- --- --- \ --- L1 --- --- --- --- /\\|Q|<-----/\|Q| --- \ --- --- \ --- |X|\\|X|\/\ --- --- --- --- --- --- |Y||Z||Y||Z| --- --- --- ---
旋轉(zhuǎn)噴頭有很多種的,發(fā)圖片上來(lái),看能否幫你解決。
可以旋轉(zhuǎn)屏幕的
在離散數(shù)學(xué)中,樹旋轉(zhuǎn)(英語(yǔ):Tree rotation)是在二叉樹中的一種子樹調(diào)整操作, 每一次旋轉(zhuǎn)并不影響對(duì)該二叉樹進(jìn)行中序遍歷的結(jié)果. 樹旋轉(zhuǎn)通常應(yīng)用于需要調(diào)整樹的局部平衡性的場(chǎng)合。
格式:pdf
大?。?span id="t7dllvf" class="single-tag-height">1.8MB
頁(yè)數(shù): 5頁(yè)
評(píng)分: 4.6
[旋轉(zhuǎn)樓梯 ]圓弧旋轉(zhuǎn)樓梯的設(shè)計(jì) 一、對(duì)圓弧旋轉(zhuǎn)樓梯的認(rèn)識(shí) 建筑設(shè)計(jì)中,人們對(duì)于線形的理解, 橫線為平衡,豎線為挺拔,斜線為動(dòng)態(tài), 弧線為柔和。樓梯自身獨(dú)特的斜體線形與弧線的柔和姿態(tài)結(jié)合起來(lái), 集中體現(xiàn)在 圓弧旋轉(zhuǎn)樓梯之中,會(huì)使靜態(tài)的空間變成活潑的動(dòng)態(tài)環(huán)境。 人們?cè)谧鰳翘菰O(shè)計(jì)中, 只要具備條件的空間,往往首選圓弧旋轉(zhuǎn)樓梯。 圓弧旋轉(zhuǎn)樓梯不僅有著獨(dú)特的藝術(shù)優(yōu)美造型, 而且占地面積小, 但是要設(shè)計(jì) 好圓弧旋轉(zhuǎn)樓梯并使之與環(huán)境結(jié)合得盡善盡美, 則是一件頗為費(fèi)心的事。 建筑界 流傳著一種說(shuō)法“樓梯是建筑中較難安排的內(nèi)容, 它設(shè)計(jì)中的許多因素, 牽一發(fā) 動(dòng)全身,建筑師能安排好樓梯, 就等于把建筑功能中解決一半”。 事實(shí)確實(shí)如此。 樓梯作為建筑中的交通樞紐, 它的位置、尺度、設(shè)施等都直接影響到使用方便與 否、舒適和美態(tài)如何。 二、圓弧旋轉(zhuǎn)樓梯設(shè)計(jì)原理和形式與應(yīng)用 (一)圓弧旋轉(zhuǎn)樓梯各部位名詞圖解為了便
紅黑樹樹的旋轉(zhuǎn)
當(dāng)我們?cè)趯?duì)紅黑樹進(jìn)行插入和刪除等操作時(shí),對(duì)樹做了修改,那么可能會(huì)違背紅黑樹的性 質(zhì)。
為了保持紅黑樹的性質(zhì),我們可以通過對(duì)樹進(jìn)行旋轉(zhuǎn),即修改樹種某些結(jié)點(diǎn)的顏色及指針結(jié)構(gòu),以達(dá)到對(duì)紅黑樹進(jìn)行插入、刪除結(jié)點(diǎn)等操作?時(shí),紅黑樹依然能保持它特有的性質(zhì)(五點(diǎn)性質(zhì))。
如右圖。
大椰樹下生長(zhǎng)著無(wú)數(shù)豐碩椰果,其艷麗的色澤、逼真的造型使小朋友充分享受到神秘的南國(guó)風(fēng)情。小朋友通過上下肢協(xié)調(diào)配合,攀爬、乘坐其上,在旋轉(zhuǎn)中體驗(yàn)新的平衡經(jīng)驗(yàn),促進(jìn)感覺統(tǒng)合能力的提高 。
SBT的旋轉(zhuǎn)(Rotations)與其他許多高級(jí)BST相同。它是下面提到的Maintain操作的基礎(chǔ)。
Left-Rotate (t)
1 k ← right[t]
2 right[t] ← left[k]
3 left[k] ← t
4 s[k] ← s[t]
5 s[t] ← s[left[t]] + s[right[t]] + 1
6 t ← k
Right-Rotate(t)
1 k ← left[t]
2 left[t] ← right[k]
3 right[k] ← t
4 s[k] ← s[t]
5 s[t] ← s[left[t]] + s[right[t]] + 1
6 t ← k