|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define MAX 20
#define changdu 10
//定义Sq类型线性表
typedef struct
{
int *elem;
int length;
int listsize;
}Sq;
//建立Sq类型线性表
void CreatList(Sq &L)
{
L.elem=(int*)malloc(MAX *sizeof(int));
L.listsize=MAX;
L.length =5;
printf("输入表的长度:");
scanf("输入%d个数:",&L.length );
for(int i=0;i<L.length ;i++)
scanf("%d",&L.elem [i]);
}
void Traverse(Sq &L)
{
printf("表中数据为:");
for(int i=0;i<L.length;i++)
printf("%3d",L.elem[i]);
printf("\n");
}
void InitList(Sq &L)
{
L.elem=(int*)malloc(changdu *sizeof(int));
L.length=0;
L.listsize =changdu;
}
void ListInsert(Sq &L,int i,int e)
{
int *p,*q;
q=&L.elem[i-1];
for(p=&L.elem[L.length-1];p>=q;--p)
*(p+1)=*p;
*q=e;
++L.length;
return;
}
void main()
{
Sq L;
CreatList(L);
Traverse(L);
Sq S;
CreatList(S);
Traverse(S);
Sq M;
InitList(M);
int i=1,j=1,k=0,ai,bj;
while((i<=L.length)&&(j<=S.length))
{
ai=L.elem[i-1];
bj=S.elem[j-1];
}
if(ai<=bj)
{
ListInsert(L,++k,ai);
++i;
}
else
{
ListInsert(S,++k,bj);
++j;
}
while(i<=L.length)
{
ai=L.elem[i++-1];
ListInsert(M,++k,ai);
}
while(j<=S.length)
{
bj=S.elem[j++-1];
ListInsert(M,++k,bj);
}
Traverse(M);
}
|
|