/*
*我是将链表A与B进行比较
*将b中与B不同的元素插入到链表A中
*/
#include<stdio.h>
#include<stdlib.h>
#define max_size 10
#define ok 1
#define error 0
typedef struct sq{
int date[max_size];
int lenth;
}sqlist;
void print(sqlist l)
{
int i;
for(i=0;i<l.lenth;i++)
printf("%d ",l.date[i]);
if(i==l.lenth)
printf("\n");
}
void insert(sqlist *l,int n) //线性表的初始化
{
int i;
int temp;
l->lenth = 0;
if(n>max_size)
{
printf("error no room");
exit(0);
}
for(i=0;i<n;i++)
{
scanf("%d",&temp);
l->date[i] = temp;
l->lenth++;
}
}
void getelem(sqlist l,int n,int *e) //将链表的第N个元素用返回给E
{
if(n <= l.lenth)
*e=l.date[n-1];
else
printf("error");
}
int locatelem(sqlist l,int e) //查找元素,找到则返回元素下标
{
int i;
for(i=0;i<l.lenth;i++)
{
if(l.date[i]==e)
break;
}
return i;
}
int listinsert1(sqlist *l,int i,int n)
{
int k;
if(l->lenth==max_size) //顺序表已满
return error;
if(i>l->lenth) //插入位置不合理
return error;
if(i<=l->lenth&&i>=0)
{
for(k=l->lenth-1;k>=i+1;k--)
l->date[k+1]=l->date[k];
l->date[i]=n;
l->lenth++;
}
print(*l);
return ok;
}
//顺序表的删除
int listdelete(sqlist *l,int i,int *e)
{
int k;
if(l->lenth<i&&i<1&&l->lenth==0) //顺序表为空,删除位置不合理
return error;
*e=l->date[i-1]; //将第i个元素取出
for(k=i-1;k<l->lenth;k++) //从第i个元素起一次将后一个元素前移
l->date[k]=l->date[k+1];
l->lenth--; //长度减1
print(*l);
return ok;
}
int listcompare(sqlist l,int n)
{
int i,k;
for(i = 0;i < l.lenth;i++)
{
if(l.date[i]>n)
break;
}
return i;
}
void unoin(sqlist *la,sqlist lb) //链表合并
{
int i,e,temp;
for(i = 0;i<lb.lenth;i++)
{
getelem(lb,i+1,&e);
printf("e=%d",e);
if(locatelem(*la,e)==la->lenth)
{
temp = listcompare(*la,e);
printf("temp=%d",temp);
listinsert1(la,temp,e);
}
}
}
int main()
{
sqlist *l;
int n;
int m;
l=(sqlist*)malloc(sizeof(sqlist));
l->lenth=0; //初始化输入的数据个数,少于max_siax个
printf("请输入链表A元素个数(不大于10个)");
scanf("%d",&n);
printf("请输入链表A元素重小到大\n");
insert(l,n);
printf("链表A的元素有:");
print(*l);
sqlist *lb;
lb=(sqlist*)malloc(sizeof(sqlist));
printf("请输入链表元B素个数(不大于10个)");
scanf("%d",&n);
printf("请输入链表B元素由小到大\n");
insert(lb,n);
printf("链表A的元素有:");
print(*lb);
unoin(l,*lb);
printf("合并后链表的元素有:");
print(*l);
return 0;
}
顺序表的合并
最新推荐文章于 2023-07-12 23:03:38 发布