欢迎来到天天文库
浏览记录
ID:10544667
大小:31.55 KB
页数:27页
时间:2018-07-07
《c++一些基本算法代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、272010年11月29号开始实习#includeusingnamespacestd;structnode{intdata;node*next;};voidmain(){node*p1,*p2,*p3,*p4,*p5,*p;p1=newnode();p2=newnode();p3=newnode();p4=newnode();p5=newnode();p1->data=1;p2->data=2;p3->data=3;p4->data=4;p5->data=5;p1->next=p2;p2->next=p3;p3->next=p4;p4->next=p5;p5->ne
2、xt=NULL;cout<<"p1->data:"<data<data:"<data<data:"<data<data:"<data<data:"<data<data:"<data<next->data:"<next->data<n
3、ext->next->data:"<next->next->data<#include#include#include#defineEQ(a,b)((a)==(b))#defineLT(a,b)((a)<(b))#defineLQ(a,b)((a)>(b))#defineLH+1#defineEH0#defineRH-1typedefintKeyType;ty
4、pedefstruct{intkey;//关键字域}ElemType;typedefstructBSTNode{ElemTypedata;intbf;//结点的平衡因子structBSTNode*lchild,*rchild;//左右孩子指针}BSTNode,*BSTree;voidInitBSTree(BSTree&T){T=NULL;}voidR_Rotate(BSTree&p){BSTNode*lc;lc=p->lchild;//lc指向的*p的左子树根结点p->lchild=lc->rchild;//lc的右子树挂接为*p的左子树lc->rchild=p;p=lc;//p指新的
5、得根结点}//R_Rotate27voidL_Rotate(BSTree&p){BSTNode*rc;rc=p->rchild;//lc指向的*p的右子树根结点p->rchild=rc->lchild;//lc的左子树挂接为*p的右子树rc->lchild=p;p=rc;//p指新的根结点}//L_RotatevoidLeftBalance(BSTree&T){BSTNode*lc,*rd;lc=T->lchild;switch(lc->bf){caseLH:T->bf=lc->bf=EH;R_Rotate(T);break;caseRH:rd=lc->rchild;switch(rd
6、->bf){caseLH:T->bf=RH;lc->bf=EH;break;caseEH:T->bf=lc->bf=EH;break;caseRH:T->bf=EH;lc->bf=LH;break;}//switch(rd->bf)rd->bf=EH;L_Rotate(T->lchild);R_Rotate(T);}//switch(lc->bf)}//LeftBalancevoidRightBalance(BSTree&T){BSTNode*lc,*ld;lc=T->rchild;switch(lc->bf)27{caseLH:ld=lc->lchild;switch(ld->bf)
7、{caseLH:T->bf=EH;lc->bf=RH;break;caseEH:T->bf=lc->bf=EH;break;caseRH:T->bf=LH;lc->bf=EH;break;}//switch(rd->bf)ld->bf=EH;R_Rotate(T->rchild);L_Rotate(T);caseRH:T->bf=lc->bf=EH;L_Rotate(T);break;}//switch(lc->bf)}//RightBalan
此文档下载收益归作者所有