递增顺序表合并
#include<stdio.h> #include<stdlib.h> #include<malloc.h> #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 #define OVERFLOW -2 typedef int ElemType; typedef struct {
ElemType *elem;
int length;
int listsize; }SqList; void InitList_sq(SqList *l,int n) {
int i;
l->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));//注意对于指针成员elem 的引用是否正确哦
if(!l->elem) exit(OVERFLOW);
l->length=n;
l->listsize=LIST_INIT_SIZE;
for(i=0;i<n;i++)
scanf("%d",&l->elem[i]); } void ListTraverse(SqList *l) {
int i;
for(i=0;i<l->length;i++)
printf("%3d",l->elem[i]);
printf("\n");
} void MergeList (SqList la,SqList lb,SqList *lc) {
int i=0,j=0,k=0;
lc->length=la.length+lb.length;
lc->elem=(ElemType *)malloc( (lc->length)*sizeof(ElemType));
while( (i<la.length)&&(j<lb.length))
{
if(la.elem [i]<=lb.elem[j])
{
lc->elem[k++]=la.elem[i];
i=i+1;
}
else
{
lc->elem[k++]=lb.elem[j];
j=j+1;
}
}
while(i<la.length)
{
lc->elem[k++]=la.elem[i++];
}
while(j<lb.length)
{
lc->elem[k++]=lb.elem[j++];
}
lc->length=k;
}
main() { SqList la,lb,lc; la.length=4; lb.length=7; printf("请输入 la 中%d 个元素",la.length ); InitList_sq( &la,la.length); printf("la 中元素是:\n"); ListTraverse(&la); printf("请输入 lb 中%d 个元素",lb.length ); InitList_sq( &lb,lb.length); printf("lb 中元素是:\n"); ListTraverse(&lb); MergeList(la,lb,&lc); printf("lc 中元素是:\n"); ListTraverse(&lc); }
相关热词搜索: 递增 合并 顺序热门文章:
- 2024年主题教育心得体会(34)2025-01-12
- 主题教育心得体会(10)(全...2025-01-12
- 2024年度主题教育心得体会(3...2025-01-12
- 2024年主题教育心得体会(4)2025-01-12
- 主题教育心得体会(14)【优...2025-01-12
- (16篇)“半条被子”精神学...2025-01-12
- 主题教育心得体会(12)(2024年)2025-01-12
- 2024主题教育心得体会(11)...2025-01-12
- 主题教育心得体会(11)(完整)2025-01-12
- 学习《习近平著作选读》心得...2025-01-12
相关文章:
- 合并公司设立契约书2021-09-19
- 两税合并后如何做好招商引资工作2022-01-02
- 学校图书馆合并后分编工作的探讨2022-03-11
- 企业合并中会计方法的研究2022-03-30
- 我国企业合并报表合并范围的...2022-04-03
- 唱标顺序表2021-09-28
- 顺序表应用2021-09-28
- 位置与顺序2021-09-28
- 2.3.1顺序结构2021-09-28
- 真相是价值顺序2022-10-31