220 likes | 350 Views
elem:0. root. elem:2000. left:. left:. right:. right:. A. elem:1000. elem:3000. left:. left:. right:. right:. B. elem:700. left:. right:. elem:0. root.insert(500). root. elem:2000. left:. left:. right:. right:. A. elem:1000. elem:3000. left:. left:. right:. right:.
E N D
elem:0 root elem:2000 left: left: right: right: A elem:1000 elem:3000 left: left: right: right: B elem:700 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: right: A elem:1000 elem:3000 left: left: right: right: B elem:700 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: right: insert(500) A elem:1000 elem:3000 left: left: right: right: B elem:700 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: left: right: right: B elem:700 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: insertx( ,500) left: right: right: B elem:700 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: insertx( ,500) left: right: right: B insertx( ,500) elem:700 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: insertx( ,500) left: right: right: B insertx( ,500) this.left = new avltree(500) elem:700 left: right: elem:500 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: insertx( ,500) left: right: right: B insertx( ,500) this.balance=Left; return true; elem:700 left: right: elem:500 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: insertx( ,500) Case Left: case Left: replace( ,singleRightRotation()) left: right: right: B elem:700 left: right: elem:500 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: insertx( ,500) Case Left: case Left: replace( ,singleRightRotation()) left: right: right: B elem:700 left: right: singleRightRotation() elem:500 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: insertx( ,500) Case Left: case Left: replace( ,singleRightRotation()) left: right: right: B elem:700 left: right: singleRightRotation() tl elem:500 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: insertx( ,500) Case Left: case Left: replace( ,singleRightRotation()) left: right: right: B elem:700 left: right: singleRightRotation() tl this.left=tl.right elem:500 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: insertx( ,500) Case Left: case Left: replace( ,singleRightRotation()) left: right: right: B elem:700 left: right: singleRightRotation() tl tl.right=this elem:500 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: insertx( ,500) Case Left: case Left: replace( ,singleRightRotation()) left: right: right: B elem:700 left: right: singleRightRotation() tl return tl elem:500 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: insertx( ,500) Case Left: case Left: replace( ,singleRightRotation()) left: right: right: B elem:700 left: right: elem:500 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: insertx( ,500) Case Left: case Left: replace( , ) left: right: right: B elem:700 left: right: elem:500 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: insertx( ,500) Case Left: case Left: replace( , ) left: right: right: B elem:700 left: replace(p,v) right: elem:500 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: insertx( ,500) Case Left: case Left: replace( , ) left: right: right: B elem:700 left: replace(p,v) right: elem:500 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: insertx( ,500) Case Left: case Left: replace( , ) left: right: right: B elem:700 left: replace(p,v) If (p.left == this) p.left = v right: elem:500 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: insertx( ,500) right: insert(500) A elem:1000 elem:3000 left: insertx( ,500) return false left: right: right: B elem:700 left: right: elem:500 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: right: A elem:1000 elem:3000 left: left: right: right: B elem:700 left: right: elem:500 left: right:
elem:0 root.insert(500) root elem:2000 left: left: right: right: elem:3000 left: right: B elem:700 left: right: A elem:500 elem:1000 left: left: right: right: