日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java中的左值右值_利用左值右值实现树状结构

發布時間:2024/9/19 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中的左值右值_利用左值右值实现树状结构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

image.png

1. 查詢

1.1. 得到節點 Node 下的所有節點,并按樹狀排序

SELECT * FROM tree WHERE lft BETWEEN Node.Lft AND Node.Rgt ORDER BY lft ASC;

1.2. 得到節點 Node 的路徑:

SELECT * FROM tree WHERE lft < Node.Lft AND rgt > Node.Rgt ORDER BY lft ASC;

1.3. 節點 Node 的子節點總數

(Node.Rgt-Node.Lft-1)/2

2. 修改

2.1. 增加一個節點

假設新節點的父節點是 Father,如果,這是它的第一個子節點,

nCurrent = Father.Lft;

否則,假設插入點的前一個兄弟為 Brother,

nCurrent = Brother.Rgt;

改變所有位于新節點右側的數值:

UPDATE tree SET rgt = rgt+2 WHERE rgt > nCurrent;

UPDATE tree SET lft = lft+2 WHERE lft > nCurrent;

這樣就為新插入的節點騰出了空間:

INSERT INTO tree(lft, rgt) VALUES(nCurrent+1, nCurrent+2);

2.2. 刪除一個節點 Node

DELETE Node;

UPDATE tree SET rgt = rgt - 2 WHERE rgt > Node.rgt;

UPDATE tree SET lft = lft - 2 WHERE lft > Node.rgt;

2.3. 子樹 SubTree 從 Father1 遷移至 Father2

相當于先插入子樹,再刪掉原來的子樹。

子樹根的左右值:

nSubTreeLeft = SubTree.Lft;

nSubTreeRight = SubTree.Rgt;

子樹上所有的節點數(包括子樹的根):

nSubTreeNodeNum = (nSubTreeRight - nSubTreeLeft - 1) / 2 + 1;

如果,這是 Father2 的第一個子節點,

nCurrent = Father2.Lft;

否則,假設插入點的前一個兄弟為 Brother,

nCurrent = Brother.Rgt;

騰子樹空間:

UPDATE tree SET lft=lft + 2* nSubTreeNodeNum WHERE lft > nCurrent; UPDATE tree SET rgt=rgt + 2* nSubTreeNodeNum WHERE rgt > nCurrent;

移動子樹:

UPDATE tree SET lft = lft + nCurrent + 1 - nSubTreeLeft, rgt = rgt + nCurrent + 1 - nSubTreeLeft WHERE lft BETWEEN nSubTreeLeft AND nSubTreeRight;

刪掉原來子樹占的空間:

UPDATE tree SET lft=lft -2* nSubTreeNodeNum WHERE lft > nSubTreeRight;

UPDATE tree SET rgt=rgt -2* nSubTreeNodeNum WHERE rgt > nSubTreeRight;

重構左右值

假設表結構類似:

image.png

/**

* 重構左右值

*

* @param rootId 根節點id

* @param left 左值開始值

* @return

*/

public int rebuildTree(int rootId, int left) {

int right = left + 1;

List categories = categoryMapper.selectByParentCategoryID(rootId);

for (Category category : categories) {

right = rebuildTree(category.getId(), right);

}

Category category = categoryMapper.selectByPrimaryKey(rootId);

category.setLft(left);

category.setRgt(right);

categoryMapper.updateByPrimaryKey(category);

return right + 1;

}

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的java中的左值右值_利用左值右值实现树状结构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本美女裸体视频 | 性折磨bdsm欧美激情另类 | 国产又粗又猛又爽又黄又 | 亚洲黄色大片 | 中文字幕日韩欧美一区二区三区 | 亚洲天堂2021av | 欧美暧暧视频 | 国产精品传媒在线观看 | 久久国产成人精品 | 大陆极品少妇内射aaaaa | 国产麻豆剧传媒精品国产av | 麻豆传媒一区 | 深爱激情av | 欧美黄网站 | 国产一级二级三级精品 | 国产一二三在线 | 91免费看. | 好邻居韩国剧在线观看 | 涩涩视频软件 | 粉嫩久久99精品久久久久久夜 | 在线视频观看 | 成人免费av在线 | 亚洲精品天堂网 | 成在人线av | 国产亚洲一区二区三区不卡 | 国产无遮挡a片又黄又爽 | 激情草逼 | 黄色片视频免费在线观看 | 免费看女生隐私 | 国产中文字幕一区 | 色中文在线 | 色999五月色 | 午夜在线视频 | 国产小视频免费 | 中文字幕第66页 | 91免费入口| 日本不卡一区视频 | 中文字幕在线观看免费高清 | 亚洲色图在线视频 | jizzjizz在线 | 天堂激情网 | 91蜜桃在线 | 污黄网站在线观看 | 五十路六十路 | 亚洲区小说 | 久久久最新 | 99久久精品免费看 | 久久av无码精品人妻系列试探 | 免费成年人视频 | 国产在线视频你懂得 | 色老头在线一区二区三区 | 男生c女生 | 色5566| 亚洲欧洲成人在线 | 日韩一级性生活片 | 少妇人妻偷人精品无码视频新浪 | 久久久久xxxx | 男人的天堂网在线 | 狠狠干夜夜操 | julia中文字幕在线 | 他趴在我两腿中间添得好爽在线看 | av软件在线观看 | 老公吃小头头视频免费观看 | 蜜桃精品久久久久久久免费影院 | 国产一级片麻豆 | 虫族全黄h全肉污文 | 草逼国产 | 亚洲av无码片一区二区三区 | 天堂网www在线 | 黄色小说在线视频 | 亚洲AV午夜精品 | 91精品国产综合久久香蕉 | 中文字幕av亚洲精品一部二部 | 美日韩免费视频 | 日本h视频在线观看 | 影视av | 日日操夜夜操视频 | 男性裸体全身精光gay | 国产天天骚| 精品无码久久久久成人漫画 | 影音先锋中文字幕在线视频 | 国产成人高清视频 | 欧美激情亚洲综合 | 久久精品久久国产 | 国产91网址 | 在线看黄免费 | 龚玥菲一级淫片 | www.久久.com| 亚洲国产tv| 爱爱爱免费视频 | 一级黄色大片在线观看 | 亚洲国产成人精品一区二区三区 | 天堂激情网 | 人妻激情偷乱视频一区二区三区 | 色吧综合 | 亚洲福利电影 | 国产热热| 中文字幕在线视频一区二区 | 乱子伦一区 |