国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Splay tree的splay操作

2019-11-06 06:43:15
字體:
供稿:網(wǎng)友

splay tree 主要適用于對統(tǒng)一對象的連續(xù)讀取 splay(insertNode) 操作 就是將當(dāng)前節(jié)點移動到 root節(jié)點

public class SplayTree<T> { PRivate Node<T> root = null; /** * @param insertNode */ public void splayTree(Node<T> insertNode){ if(insertNode.parent!=null){ if(insertNode.parent.parent==null){/* parent * / * insert * */ if(insertNode.parent.index>insertNode.index){ rotateRight(insertNode); }/* parent * / * insert * */ else{ rotateLeft(insertNode); } }else{ if(insertNode.parent.index>insertNode.index){ if(insertNode.parent.parent.index>insertNode.parent.index){/* grandfather parent insert * / / / / * parent insert grandfather parent * / / * insert grandfather * */ rotateRight(insertNode.parent); rotateRight(insertNode); }/* * grandfather grandfather insert * / / / / * parent insert grandfather parent * / / * insert parent * */ else{ rotateRight(insertNode); rotateLeft(insertNode); } if(insertNode.parent!=null){ splayTree(insertNode); } }else{/* * grandfather grandfather insert * / / / / * parent insert parent grandfather * / / * insert parent * */ if(insertNode.parent.parent.index>insertNode.parent.index){ rotateLeft(insertNode); rotateRight(insertNode); }/* * grandfather parent insert * / / / / * parent grandfather insert parent * /insert / * grandfather * **/ else{ rotateLeft(insertNode.parent); rotateLeft(insertNode); } if(insertNode.parent!=null){ splayTree(insertNode); } } } } root=insertNode; } /** * @param itemNode */ public void rotateRight(Node<T> itemNode){ Node<T> parent=itemNode.parent; Node<T> grandParent=parent.parent; Node<T> right=itemNode.right; parent.parent=itemNode; itemNode.right=parent; parent.left=right; if(right!=null){ right.parent=parent; } itemNode.parent=grandParent; if(grandParent!=null){ if(grandParent.index>itemNode.index){ grandParent.left=itemNode; }else{ grandParent.right=itemNode; } } } public void rotateLeft(Node<T> itemNode){ Node<T> parent=itemNode.parent; Node<T> grandParent=parent.parent; Node<T> left=itemNode.left; parent.parent=itemNode; itemNode.left=parent; parent.right=left; if(left!=null){ left.parent=parent; } itemNode.parent=grandParent; if(grandParent!=null){ if(grandParent.index>itemNode.index){ grandParent.left=itemNode; }else{ grandParent.right=itemNode; } } } public static class Node<T> { Node<T> parent; int index; T t; Node<T> left; Node<T> right; public Node(Node<T> parent, int index, T t) { super(); this.parent = parent; this.index = index; this.t = t; } }}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 沙雅县| 武山县| 沙雅县| 瓦房店市| 黄龙县| 卢湾区| 额济纳旗| 府谷县| 南汇区| 屏边| 常州市| 高青县| 冷水江市| 武威市| 德阳市| 永寿县| 米林县| 富锦市| 扎兰屯市| 清水河县| 南江县| 庆云县| 西城区| 南木林县| 启东市| 上蔡县| 沙湾县| 辽宁省| 积石山| 乐陵市| 丹棱县| 鲁甸县| 通州区| 额尔古纳市| 许昌县| 绍兴市| 独山县| 元朗区| 大田县| 洪雅县| 深水埗区|