a[0].flag1=1;
i=1;
if(a[0].data<a[i].data)
{
loop:if(a[2*i].flag1==0)
{
a[2*i].data=a[0].data;
-27-
a[2*i].flag1=a[0].flag1;}
if(a[2*i].flag1==1)
{
i=2*i;
if(a[0].data<a[i].data)
goto loop;
if(a[0].data>a[i].data)
goto loop1;
}
}
if(a[0].data<a[i].data)
{
loop1:if(a[2*i+1].flag1==0)
{
a[2*i+1].data=a[0].data;
a[2*i+1].flag1=a[0].flag1;}
if(a[2*i+1].flag1=1)
{
i=2*i+1;
if(a[0].data<a[i].data)
goto loop;
if(a[0].data>a[i].data)
goto loop1;
}
}
}
}
void Sdel(Link a[N])
{
int i;int flag=0;
int q;int number=1;
int j=1;int b[N];
printf("\n\t\t\t 请输入需要删除的结点的数值:"); scanf("%d",&q);
for(i=1;i<=N;i++)
if(a[i].data=q)
{
a[i].data=0;
printf("\n\t\t\t 已删除%d:",q);
-28-
flag=1; for(i=1;i<=N;i++) {
if(a[i].data!=0) {
b[j]=a[i].data; j++;
number++;
}
}
for(i=1;i<=N;i++) {
a[i].flag1=0; a[i].data=0;
}
a[1].data=b[1];
a[1].flag1=1;
for(j=2;j<=number-1;j++) {
a[0].data=b[j]; a[0].flag1=1;
i=1;
if(a[0].data<a[i].data) {
loop:if(a[2*i].flag1==0) {
a[2*i].data=a[0].data; a[2*i].flag1=a[0].flag1; }
if(a[2*i].flag1==1) {
i=2*i;
if(a[0].data<a[i].data) goto loop;
if(a[0].data>a[i].data) goto loop1;
}
}
if(a[0].data>a[i].data) {
loop1:if(a[2*i+1].flag1==0) {
a[2*i+1].data=a[0].data; a[2*i+1].flag1=a[0].flag1;
-29-
}
if(a[2*i+1].flag1==1)
{
i=2*1+1;
if(a[0].data<a[i].data)
goto loop;
if(a[0].data>a[i].data)
goto loop1;
}
}
}
printf("\n\n\t\t\t 显示已经删除结点后的数据\n");
for(i=1;i<N;i++)
{if(a[i].data!=0)
{
printf("\n\t\t\t 位于二叉排序树的第%d位的数据为:",i);
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-26533-10.html
但针对军事侵入中国海域包括南海的任何一个国家