1. 程式人生 > >將兩個有序順序表合成一個新的有序順序表,使表中所有元素的值均不同

將兩個有序順序表合成一個新的有序順序表,使表中所有元素的值均不同

typedef int type;
typedef struct
{   int len;
    type data[MAX];
}sqList;
bool isposorder(sqList *a)//非題
{
    for(int i=1;i<a->len;i++)
      if(a->data[i]<a->data[i-1])
      return false;
      return true;

}
int combine7(sqList *a,sqList *b,sqList *c)
{
    int i=0;int j=0;int k=0;
    c->len=a->len+b->len;
    if(!isposorder(a)||!isposorder(b))
    return -1;
    else
    {
    while(j<a->len&&k<b->len)
    {
        if(a->data[j]<=b->data[k])
        c->data[i++]=a->data[j++];
        else
        c->data[i++]=b->data[k++];
    }
    if(j==a->len)
    while(k<b->len)
    c->data[i++]=b->data[k++];
    else
    while(j<a->len)
    c->data[i++]=a->data[j++];
    return 0;
}
 } 

        if(a->data[i]>=a->len||a->data[i]<0)
        return -2;
        else
            t[a->data[i]]++;
    }
    for(int i=0;i<a->len;i++) 
      if(t[i]>a->len/2)
        return i;
        return -1;
}