日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

线性表--算法设计题2.29

發布時間:2023/12/2 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线性表--算法设计题2.29 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
已知A,B和C為三個遞增有序的線性表,現要求對A表作如下操作:刪去那些既在B表中出現又在C表中出現的元素。試對順序表編寫實現上述操作的算法.(注意:題中沒有特別指明同一表中的元素值各不相同)。

?C code:

#include<stdio.h>
#include
<stdlib.h>
#define?LIST_INIT_SIZE?10
#define?LIST_INCREMENT?2
#define?ERROR?0
#define?OK?1
#define?OVERFLOW?-1
#define?TRUE?1
typedef?
int?Status;

struct?SqList
{
?????
int?*elem;
?????
int?length;
?????
int?listsize;
};

void?InitList(SqList?&L)
{
?????L.elem
=(int*)malloc(LIST_INIT_SIZE*sizeof(int));
?????
if(!L.elem)
???????exit(OVERFLOW);
?????L.length
=0;
?????L.listsize
=LIST_INIT_SIZE;
}

Status?ListInsert(SqList?
&L,int?i,int?e)
{
?????
int?*newbase,*q,*p;
?????
if(i<1||i>L.length+1)
???????
return?ERROR;
?????
if(L.length==L.listsize)
?????{
??????????newbase
=(int*)realloc(L.elem,(L.listsize+LIST_INCREMENT)*sizeof(int));
??????????
if(!newbase)
????????????exit(OVERFLOW);
??????????L.elem
=newbase;
??????????L.listsize
+=LIST_INCREMENT;
?????????
????????}
????????q
=L.elem+i-1;
????????
for(p=L.elem+L.length-1;?p>=q;?--p)
??????????
*(p+1)=*p;
????????
*q=e;
????????
++L.length;
????????
return?OK;
}

void?CreateList(SqList?&L,int?len)
{
?????
int?i,t;
?????printf(
"Please?input?elems:?");
?????
for(i=1;?i<=len;?i++)
?????{?
???????scanf(
"%d",&t);
??????????ListInsert(L,i,t);?
????????}
}

void?ListTraverse(SqList?L,void(*vist)(int&))
{
?????
int?*p=L.elem;
?????
int?i;
?????
for(i=1;?i<=L.length;?i++)
?????{
??????????vist(
*p++);
????????}
????????printf(
"\n");
}

void?print1(int?&c)
{
?????printf(
"%d?",c);
}

int?cmp(const?void?*a,const?void?*b)
{
?????
return?*(int*)a?-?*(int*)b;
}

void?ListSort(SqList?&L)
{
??qsort(L.elem,L.length,
sizeof(int),cmp);????
????
}

void?ListCross(SqList?La,SqList?Lb,SqList?&Lc)
{
?????
int?i=0,j=0,k=1;
?????
while(i<La.length?&&?j<Lb.length)
?????{
??????????
if(La.elem[i]<Lb.elem[j])
??????i
++;
????
else
????{
?????????
if(La.elem[i]>Lb.elem[j])
???????????j
++;
?????????
else
?????????{
??????????????ListInsert(Lc,k,La.elem[i]);
??????????????i
++;
??????????????k
++;
????????????}
???????}?????????
????????}
}

void?ListMinus(SqList?La,SqList?Lb,SqList?&Lc)
{
?????
int?i=0,j=0,k=1;
?????
while(i<La.length?&&?j<Lb.length)
?????{
??????????
if(La.elem[i]<Lb.elem[j])
??????????{
????????????ListInsert(Lc,k,La.elem[i]);
????????????i
++;
????????????k
++;
??????????}
??????????
else
??????????{
???????????????
if(La.elem[i]>Lb.elem[j])
???????????????{
????????????????????j
++;
??????????????????}
??????????????????
else
??????????????????{
???????????????????????i
++;
???????????????????????j
++;
?????????????????????}
?????????????}??
????????}
????
}

int?main()
{
?????SqList?La,Lb,temp,Lc,Ld;
?????InitList(La);
?????InitList(Lb);
?????InitList(Lc);
?????InitList(Ld);
?????InitList(temp);
?????
?????
int?La_len,Lb_len,Lc_len;
?????printf(
"input?length?of?La:?");
?????scanf(
"%d",&La_len);
?????printf(
"input?length?of?Lb:?");
?????scanf(
"%d",&Lb_len);
?????printf(
"input?length?of?Lc:?");
?????scanf(
"%d",&Lc_len);
?????
?????CreateList(La,La_len);
?????CreateList(Lb,Lb_len);?
?????CreateList(Lc,Lc_len);?
?????
?????printf(
"List?a:?");
?????ListTraverse(La,print1);
?????printf(
"List?b:?");
?????ListTraverse(Lb,print1);
?????printf(
"List?c:?");
?????ListTraverse(Lc,print1);
?????
?????printf(
"After?sorting?List?a:?");
?????ListSort(La);
?????ListTraverse(La,print1);
?????printf(
"After?sorting?List?b:?");
?????ListSort(Lb);
?????ListTraverse(Lb,print1);
?????printf(
"After?sorting?List?c:?");
?????ListSort(Lc);
?????ListTraverse(Lc,print1);
?????
?????ListCross(Lb,Lc,temp);
?????ListSort(temp);
?????printf(
"temp?List:?");
?????ListTraverse(temp,print1);
?????
??ListMinus(La,temp,Ld);
??ListSort(Ld);
?????printf(
"List?d:?");
?????ListTraverse(Ld,print1);
?????
return?0;

}?

轉載于:https://www.cnblogs.com/iwuyudong/archive/2011/05/03/2234051.html

總結

以上是生活随笔為你收集整理的线性表--算法设计题2.29的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。