有顺序表A和B,其元素均按从小到大的生序排列,编写算法将它们合并成一个顺序表C,要求C的元素也是从小到大的生序排列

1个回答

  • 在VC下通过,希望对你有帮助,谢谢采纳.

    #include

    typedef struct node{

    int data;

    struct node *next;

    }Lnode,*Linklist;

    Linklist A,B,C;

    Linklist init_linklist(){

    Lnode *s,*r,*L;

    L=new Lnode;

    L->next=NULL;

    r=L;

    int x;

    coutx;

    while(x!=-1){

    s=new Lnode;

    s->data=x;

    r->next =s;

    r=s; // 从尾部按从小到大顺序插入

    coutx;

    }

    r->next=NULL;

    return L;

    }

    Linklist combine(Lnode *A,Lnode *B){ //合并

    Lnode *pa,*pb,*s;

    C=A;

    s=C;

    pa=A->next ;

    pb=B->next ;

    while(pa&&pb){

    if(pa->datadata){

    s->next=pa;

    s=pa;

    pa=pa->next;

    }

    else{

    s->next=pb;

    s=pb;

    pb=pb->next;

    }

    }

    if(pa)

    s->next=pa;

    else

    s->next=pb;

    return C;

    }

    void output(Linklist p){

    while(p->next){

    cout data