C语言—严蔚敏数据结构 2.7线性表的应用 合并线性表小作业

#include
#include
#define ok 1
#define error 0
typedef int EleType;
typedef int Status;

typedef struct Nnode/*定义链表结构*/
{
	EleType data;
	struct Nnode *next;
}Node,*Link;
void create(Link &L,int n)
{
	Link p;
	L=new Node;
	L->next=NULL;
	for(int i=n;i>0;i--)
	{
		p=new Node;
		printf("input:%d\n",i);
		scanf("%d",&p->data);
		p->next=L->next;
		L->next=p;
	}
}

void readlist(Link L)
{
	Link p;
	p=L->next;
	while(p)
	{
		printf("%d ",p->data);
		p=p->next;
	}
}

EleType len(Link L)
{
	int a=0;
	Link p;
	p=L->next;
	while(p)
	{
		a++;
		p=p->next;
	}
	return a;
}

void insert(Link &L,int length,int e)
{
	Link p;
	p=L;
	int i=0;
	while(inext;
		i++;
	}
	Link s;
	s=new Node;
	s->data=e;
	s->next=p->next;
	p->next=s;
}
int locate(Link L,int e)
{
	Link p;
	p=L->next;
	while(p&&p->data!=e)
		p=p->next;
	if(!p)
		return error;
	else
		return ok;
}

int get(Link L,int i)
{
	int e;
	Link p;
	p=L->next;
	int a;
	for(a=1;anext;
	e=p->data;
	return e;
}
void mix(Link &la,Link lb)
{
	int m,n,i,e;
	n=len(lb);
	for(i=1;i<=n;i++)
	{
		m=len(la);
		e=get(lb,i);
		if(!locate(la,e))
			insert(la,m,e);
	}
}
int main()
{
	int a,b;
	Link x,y;
	printf("请输入个数:");
	scanf("%d",&a);
	create(x,a);
	printf("la=(");
	readlist(x);
	printf(")\n");
	printf("\n请输入个数:");
	scanf("%d",&b);
	create(y,b);
	printf("lb=(");
	readlist(y);
	printf(")\n");
	mix(x,y);
	printf("\nmix=(");
	readlist(x);
	printf(")\n");
	system("pause");
}

你可能感兴趣的:(数据结构,c语言,算法,数据结构)