#include<stdio.h>标签:10,listlen,bh,int,List,合并,Ptrl,ah From: https://blog.51cto.com/u_15093262/5732898
#include<stdlib.h>
#define MAXSIZE 20
typedef struct LNODE {
char list[MAXSIZE];
int listlen;//表的当前长度
}*List, L;
void init(List Ptrl, int arr[]);
void showList(List Ptrl);
void _and(List ah, List bh);
void insert(List Ptrl, char x, int i);
int main()
{
List ah = (List)malloc(sizeof(L));
List bh = (List)malloc(sizeof(L));
int a[] = { 1,3,5,7,9 };
int b[] = { 2,3,6 };
ah->listlen = 5;
bh->listlen = 3;
init(ah, a);
init(bh, b);
printf("原来ah表:\n");
showList(ah);
printf("\n");
printf("原来bh表:\n");
showList(bh);
printf("\n");
printf("合并后ah的内容\n");
_and(ah, bh);
showList(ah);
printf("\n");
return 0;
}
void init(List Ptrl, int arr[])
{
int i;
for (i = 0; i < Ptrl->listlen; i++)
Ptrl->list[i] = arr[i];
}
void showList(List Ptrl)
{
int i;
for (i = 0; i < Ptrl->listlen; i++)
printf("%d ", Ptrl->list[i]);
}
void _and(List ah, List bh)
{
int i, j;
for (j = 0; j < bh->listlen; j++)
{
for (i = 0; i < ah->listlen; i++)
{
if (ah->list[i] >= bh->list[j])
{
insert(ah, bh->list[j], i + 1);
ah->listlen++;
i++;
break;
}
}
}
}
void insert(List Ptrl, char x, int i)
{
int j;
if (i<0 || i>MAXSIZE)
{
printf("插入位置不对");
return;
}
if (Ptrl->listlen == MAXSIZE)
{
printf("表满\n");
return;
}
for (j = Ptrl->listlen ; j >= i; j--)
{
Ptrl->list[j] = Ptrl->list[j - 1];
}
Ptrl->list[j] = x;
}