菲律宾马尼拉华人多吗:树的排序问题?

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 07:47:07
对树的同一层上的结点排序
即对已知树排序,使同一层上各个的结点递增
要求用c++

把树重建成一棵二叉排序树不就行了。

其实也就是堆排序
void heapadjust(SqList &H,int s,int m){
int j;
H.r[0]=H.r[s];
for(j=2*s;j<=m;j*=2){
if(j<m&<(H.r[j].key,H.r[j+1].key))++j;
if(!LT(H.r[0].key,H.r[j].key))break;
H.r[s]=H.r[j];
s=j;
}
H.r[s]=H.r[0];
}
void heapsort(SqList &H){
int i;
soldier temp;
for(i=H.length/2;i>0;--i)
heapadjust(H,i,H.length);
for(i=H.length;i>1;--i){
temp=H.r[1];
H.r[1]=H.r[i];
H.r[i]=temp;
heapadjust(H,1,i-1);
}
}