请求高手指教,这是一道用线性表的顺序表示和实现的C语言程序题: 已知,集合A=(3,5);B=(2,6,8)集合A
1个回答

#include"stdio.h"

#include"stdlib.h"

typedef struct lnode

{

int data;

x05struct lnode *next;

}lnode,*linklist;

struct lnode * createlist_la(int n)

{

x05int i;

x05struct lnode *pa,*la,*qa;

x05la=(linklist)malloc(sizeof(lnode));

x05la->next=NULL;

x05qa=la;

x05for(i=n;i>0;i--)

x05{

x05x05pa=(linklist)malloc(sizeof(lnode));

x05x05scanf("%d",&pa->data);

x05x05pa->next=qa->next;

x05x05qa->next=pa;

x05x05qa=pa;

x05}

x05pa=la->next ;

x05while(pa)

x05{

x05x05printf("%3d",pa->data);

x05x05pa=pa->next;

x05}

x05return la;

}

struct lnode * createlist_lb(int m)

{

x05int i;

x05struct lnode *pb,*qb,*lb;

x05lb=(linklist)malloc(sizeof(lnode));

x05lb->next=NULL;

x05qb=lb;

x05for(i=1;idata);

x05x05pb->next=qb->next ;

x05x05qb->next=pb;

x05x05qb=pb;

x05x05

x05}

x05pb=lb->next;

x05while(pb)

x05{

x05x05printf("%3d",pb->data);

x05x05pb=pb->next;

x05}

x05return lb;

}

struct lnode * mergelist_lc(struct lnode *la,struct lnode *lb)

{

x05struct lnode *pc,*pa,*pb,*lc;

x05lc=la;

x05pc=la;

x05pa=la->next;

x05pb=lb->next ;

x05while(pa&&pb)

x05{

x05x05if((pa->data)>(pb->data) )

x05x05{

x05x05x05pc->next =pb;

x05x05x05pc=pb;

x05x05x05pb=pb->next;

x05x05}

x05x05else

x05x05{

x05x05x05pc->next=pa;

x05x05x05pc=pa;

x05x05x05pa=pa->next ;

x05x05}

x05}

x05if(pa==NULL) pc->next =pb;

x05else pc->next =pa;

x05free (lb);

x05pc=lc->next;

x05while(pc)

x05{

x05x05printf("%4d",pc->data );

x05x05pc=pc->next ;

x05}

x05return lc;

}

struct lnode * listdelete_lc(struct lnode *pc3,int y)

{

x05struct lnode *pc4,*pc5;

x05pc4=pc3 ;

x05while(pc4&&((pc4->next->data )!=y))

x05x05pc4=pc4->next ;

x05pc5=pc4->next;

x05pc4->next=pc5->next;

x05free(pc5);

x05pc4=pc3->next ;

x05while(pc4)

x05{

x05x05printf("%3d",pc4->data );

x05x05pc4=pc4->next;

x05}

x05printf("n");

x05return pc3;

}

void main()

{

x05int n,m,y;

x05struct lnode *a,*b,*c,*c1,*c2;

x05printf("请输入A表的数值个数 n:n");

x05scanf("%d",&n);

x05printf("请输入A表的数值:");

x05printf("n");

x05a=createlist_la(n);

x05printf("n");

x05printf("请输入B表的数值个数 m:n");

x05scanf("%d",&m);

x05printf("请输入B表的数值:");

x05printf("n");

x05b=createlist_lb(m);

x05printf("n");

x05c=mergelist_lc(a,b);

x05printf("n");

x05printf("输入将要删除的数 y:");

x05printf("n");

x05scanf("%d",&y);

x05c2=listdelete_lc(c,y);

}