欢迎来到天天文库
浏览记录
ID:37769685
大小:34.00 KB
页数:4页
时间:2019-05-30
《求树深度的递归算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、//求树深度的递归算法intDepth(BitreeT){if(!T)return0;else{m=Depth(T->lchild);n=Depth(T->rchild);return(m>n?m:n)+1;}}//Depth//求二叉树中以值为x的结点为根的子树深度intGet_Sub_Depth(BitreeT,intx){if(T){if(T->data==x)returnDepth(T);//找到了值为x的结点,求x为根的子树的其深度else{if(T->lchild)m=Get_Sub_Depth(T->lch
2、ild,x);if(T->rchild)n=Get_Sub_Depth(T->rchild,x);//在左右子树中继续寻找}returnm>n?m:n;}return0;}//Get_Sub_Depth//交换所有结点的左右子树voidBitree_Revolute(BitreeT){if(T){T->lchild<=>T->rchild;//交换左右子树if(T->lchild)Bitree_Revolute(T->lchild);if(T->rchild)Bitree_Revolute(T->rchild);}}//
3、Bitree_Revolute//根据顺序存储结构建立二叉链表StatusCreateBitree_SqList(Bitree&T,SqListsa){Bitreeptr[sa.last+1];//该数组储存与sa中各结点对应的树指针if(!sa.last){T=NULL;//空树ReturnOK;}ptr[1]=(BTNode*)malloc(sizeof(BTNode));ptr[1]->data=sa.elem[1];//建立树根T=ptr[1];T->lchild=T->rchild=NULL;for(i=2;i
4、<=sa.last;i++){if(!sa.elem[i])returnERROR;//顺序错误ptr[i]=(BTNode*)malloc(sizeof(BTNode));ptr[i]->data=sa.elem[i];ptr[i]->lchild=ptr[i]->rchild=NULL;j=i/2;//找到结点i的双亲jif(i==j*2)ptr[j]->lchild=ptr[i];//i是j的左孩子elseif(i==2*j+1)ptr[j]->rchild=ptr[i];//i是j的右孩子}returnOK;}/
5、/CreateBitree_SqList
此文档下载收益归作者所有