Avl Algoritihm

Embed Size (px)

DESCRIPTION

this document gives a pseudo code to implement AVL tree.

Citation preview

//algoritihm for avl insertionavl_insertion(data,lc,rc,new,item,node,root){step 1set new.lc=nullnew.rc=nullnew.daTa=itemif root==nullset root=new;step 2if item=inode.data) insrt(node.lc,inode,node,true) height(node,pnode) } else { insrt(node.rc,inode,node,false) height(node,pnode) } }}//end of if else structureheight(node,pnode){if node==nullreturn -1height(node.lc)height(node.rc)if (height(node.lc,node)height(node.rc)singleleftrotation(pnode,gpnode,node)elsedoubleleftritation(pnode,gpnode,node)}else{if height(node.rc)>height(node.lc)singlerightrotate(pnode,gpnode,node)elsedoublerightrotate(pnode,gpnode,node)}singleleftrotation(node1,node0,node2){node1.lc=node2.rcnode2.rc=node1node0.lc=node2}doubleleftrotation(node0,node1,node2){new2=node2.rcnode2.rc=new2.lcnode1.lc=new2.rcnew2.lc=node2new2.rc=node1node0.lc=new2}singlerightrotate(node0,node1,node2){node1.rc=node2.lcnode2.lc=node1node0.rc=node2}doublerightrotate(node0,node1,node2){new2=node2.lcnode2.lc=new2.rcnode1.rc=new2.lcnew2.rc=node2new2.lc=node1node0.rc=node2)}