具体代码如下:
#include
#include
#define MAX 40
typedef struct
{
int data[MAX];
int length;
}LinkList;
void Initial_List(LinkList * &l,int n)//初始化顺序表
{
int i=0;
l=(LinkList *)malloc(sizeof(LinkList));
l->length = 0;
for(;i scanf("%d",l->data+i); l->length = n; } void Link(LinkList *l1,LinkList *l2,LinkList * &l3)//连接顺序表 { int i,j; l3=(LinkList *)malloc(sizeof(LinkList)); l3->length = l1->length + l2->length; for(i=0;i { if(i { l3->data[i] = l1->data[i]; } else { l3->data[i] = l2->data[i%(l1->length)]; } } for(i=0;i { for(j=i+1;j { if(l3->data[i]>l3->data[j]) { int temp=l3->data[i]; l3->data[i]=l3->data[j]; l3->data[j]=temp; } } } } void Disp_List(LinkList *l) { int i=0; printf("output:\n"); for(;i printf("%d ",l->data[i]); printf("\n"); } int main() { LinkList *l1,*l2,*l3; int n; printf("请输入第一个序列的元素个数:\n"); scanf("%d",&n); printf("请输入第一个序列的所有元素:\n"); Initial_List(l1,n); printf("请输入第二个序列的元素个数:\n"); scanf("%d",&n); printf("请输入第二个序列的所有元素:\n"); Initial_List(l2,n); Link(l1,l2,l3); Disp_List(l3); return 0; } 编写算法,将两个非递减有序顺序表A和B合成一个新的非递减有序顺序表C。 已知顺序表A和B的元素个数分别为m,n。其中顺序表采用动态分配内存空间,其定义如下: typedef struct{ ElemType *elem; //存储空间基址 int length; //当前长度 int listsize; //当前分配的存储容量 }Sqlist; */
代码有错…还没法合并
具体代码如下:
#include
#include
#define MAX 40
typedef struct
{
int data[MAX];
int length;
}LinkList;
void Initial_List(LinkList * &l,int n)//初始化顺序表
{
int i=0;
l=(LinkList *)malloc(sizeof(LinkList));
l->length = 0;
for(;i
scanf("%d",l->data+i);
l->length = n;
}
void Link(LinkList *l1,LinkList *l2,LinkList * &l3)//连接顺序表
{
int i,j;
l3=(LinkList *)malloc(sizeof(LinkList));
l3->length = l1->length + l2->length;
for(i=0;ilength;i++)
{
if(ilength)
{
l3->data[i] = l1->data[i];
}
else
{
l3->data[i] = l2->data[i%(l1->length)];
}
}
for(i=0;ilength;i++)
{
for(j=i+1;jlength;j++)
{
if(l3->data[i]>l3->data[j])
{
int temp=l3->data[i];
l3->data[i]=l3->data[j];
l3->data[j]=temp;
}
}
}
}
void Disp_List(LinkList *l)
{
int i=0;
printf("output:\n");
for(;ilength;i++)
printf("%d ",l->data[i]);
printf("\n");
}
int main()
{
LinkList *l1,*l2,*l3;
int n;
printf("请输入第一个序列的元素个数:\n");
scanf("%d",&n);
printf("请输入第一个序列的所有元素:\n");
Initial_List(l1,n);
printf("请输入第二个序列的元素个数:\n");
scanf("%d",&n);
printf("请输入第二个序列的所有元素:\n");
Initial_List(l2,n);
Link(l1,l2,l3);
Disp_List(l3);
return 0;
}