當(dāng)前位置:
首頁 >
[算法] 可并堆
發(fā)布時(shí)間:2025/5/22
25
豆豆
hyh集訓(xùn)隊(duì)論文
左偏樹(小根堆):
int merge(int x, int y) {if(!x) return y;if(!y) return x;if(v[x]>v[y]) swap(x,y);rs[x]=merge(rs[x],y);if(dis[rs[x]>dis[ls[x]]]) swap(ls[x],rs[x]);if(!rs[x]) dis[x]=0;else dis[x]=dis[rs[x]]+1;return x; }int pop(int x) {int l=ls[x],r=rs[x];ls[x]=rs[x]=dis[x]=0;return merge(l,r); }//取堆頂直接訪問v[x]即可斜堆:
//需要先對(duì)結(jié)點(diǎn)編號(hào)?沒太懂int merge(int x, int y) {if(!x || !y) return x+y;if(v[x]>v[y]) swap(x,y);rs[x]=merge(rs[x],y);swap(ls[x],rs[x]);return x; }int pop(int x) {return merge(ls[x],rs[x]); }轉(zhuǎn)載于:https://www.cnblogs.com/HLXZZ/p/7639056.html
總結(jié)
- 上一篇: 《重构-改善既有代码设计》读书笔记-重构
- 下一篇: Uploadify v3.2.1