L->elem = (int*)malloc(sizeof(int) * MAXSIZE); L->length = 0; } void DestroyList(SqList *L) { if (!L->elem) { printf("顺序表不存在\n"); exit(1); } free(L->elem); L->length = 0; } int GetElem(SqList L, int i, int* e) { if (!L.elem) { printf("顺序表不...
* 有序表合并:(这里为两个非递减线性表list1,list2;合并为一个非递减线性表list3); *则:list3=(1,2,4,6,7,8,8,10,11) * 线性表合并:(合并结果放入list1,“list1 并= list2”) * 则新的:list1=(1,7,8,2,4,6,10,11)*/intmain(void){//定义一个线性表SqList list1,list2,list3;/...
while(表1不结束 && 表2不结束) { if (表1结束 || 表1.当前值>表2.当前值) {表2.当前值插...
{inti,p,q,r;structslist lc;//合并后的顺序表lcstructslist la={{12,12,15,17,19},5},lb={{12,13,13,16,18},5};//定义顺序表la,lb并赋初值。lc.len=0;//lc的初始长度为0printf("顺序表la的元素是:");for(i=0;i<la.len;i++) { printf("%d\t",la.a[i]); } printf("\n顺序...
/*参数越界*/ else *pelem=L.base[index]; returnflg;} /*求顺序表长度*/int ListLen(SeqList L){ returnL.len; } /*在顺序表中指定序号位置插入元素*/BOOL ListInsert(SeqList *pL, int pos, ListDT d){ BOOLflg=TRUE; inti; if...
Lnode=(int*)malloc(sizeof(int)*Lc->length);//在别处开辟一处空间,不是在数据结构里开辟int*p=L->firstLnode;int*p1=L1->firstLnode;int*pc=Lc->firstLnode;//各顺序表的头指针int*p_Last;int*p1_Last;//各顺序表的尾指针p_Last=L->firstLnode+L->length-1;p1_Last=L1->length-1+L1->...
Mergelist_sq(sqa, sqb, sqc);//A,B的数据有了,调用函数把这两个表合并到空顺序表C中,C是空!!printf("A顺序表的元素为:");for (int i = 0; i <sqa.len; i++) {printf("%d", sqa.data[i]); }printf("\n");printf("B顺序表的元素为:");...
bool Merge(SeqList A, SeqList B, SeqList &C)\x0d\x0a{ //合并有序顺序表A与B成为一个新的有序顺序表C \x0d\x0aif(A.length+B.length>C.maxSize) //大于顺序表的最大长度\x0d\x0areturn false;\x0d\x0aint i=0,j=0,k=0;\x0d\x0awhile(i<A.length && ...
} //Lb的初始化 if(InitList_Sq(&Lb)) { printf("Inite is ok!\n"); printf("Lb's Length: %d\n",Lb.length); printf("Lb's Listsize: %d\n\n",Lb.listsize); } else { printf("error!"); } //La的输入数据 printf("please input La.length!\n"); scanf("%d",&a); printf("Pl...
1.最容易的办法就是把两个表保存在一个新的表里,然后冒泡排序(就是这么暴力。)2.不过这个问题用指针实现最方便了。两个指针分别指着两个递增表:比较指针所指的值大小,将小的那个保存在新的表里,然后将小的那个指针往前走一步。再比较,再保存,再走...直到其中一个表走完,把另一个表剩...