数据结构的C语言算法

上传人:213****223 文档编号:156151894 上传时间:2022-09-26 格式:DOCX 页数:122 大小:318.33KB
收藏 版权申诉 举报 下载
数据结构的C语言算法_第1页
第1页 / 共122页
数据结构的C语言算法_第2页
第2页 / 共122页
数据结构的C语言算法_第3页
第3页 / 共122页
资源描述:

《数据结构的C语言算法》由会员分享,可在线阅读,更多相关《数据结构的C语言算法(122页珍藏版)》请在装配图网上搜索。

1、数据结构的语言算法作者:林庆达班级:计算机(77)班学号:80号 以下数据结构算算法由C语言言编译,并在在TC上运行行通过,其中中,扩展名为为”.CPP”的为头文件件,运行时只只需将头文件件与相应算法法连接即可。第一章 绪论(预预备知识)练习1.16/*试写一算法法,自大至小小输出顺序读读入的三个整整数X,Y和和Z的值*/122#includde void swwap(innt *x,int *y,intt *z) int tt; if(*xx*y) t=*x;*x=*yy;*y=tt; if(*yy*z) t=*y;*y=*zz;*z=tt; if(*xx*y) t=*x;*x=*yy;*y

2、=tt; main()int a,b,c;scanf(%d,%dd,%d,&a,&bb,&c);swap(&aa,&b,&c);printf(%d %d %d,a,b,c);第二章 线性表表1顺序表实现顺序表基本本算法的头文文件sq.ccpp为:#includde#definee MaxLLen 500/*顺序表表中最多元素素个数*/typedeff int elemttype;typedeff elemmtype sqlisstMaxxLen;int creeate(ssqlistt A)/*创建线形表表*/ int i,n; printff(创建一一个顺序表:n); printff(输入元

3、元素个数:); scanf(%d,&n); for(i=0;inn;i+) printtf(输入入第%d个元元素值:,i+1); scanff(%d,&Aii); returnn n;void diisp(sqqlist A,intt n)/*输出出一个顺序表表*/ int i; printff(输出一一个顺序表: n); if(n=0) prrintf(空表); for(i=0;inn;i+) priintf(%d ,Ai); printff(n);int inss(sqliist A,int nn,int i,eleemtypee x)/*在顺序表第第i个元素前前插入一个元元素x,若ii=

4、0,则新新元素作为第一个元素,若若i=1,则则插入在最后后*/ int j; if(inn) priintf(i值下溢或或上溢n); else for(jj=n-1;j=i;j-) Aj+11=Ajj; /*将第ii个元素及其其后的元素后后移*/ Ai=x;n+;/*顺序序表长度加11*/ returnn n;int dell(sqliist A,int nn,int i)/*在顺序表中中删除第i个个元素*/ intt j; if(in) prinntf(ii值下溢或上上溢n); elsse for(j=i-11;jn;j+) Aj=Aj+11; /*将第第i个元素之之后的元素前前移覆盖Ai*

5、/ n-; /*顺序表表长度减1*/ retturn nn;int finnd(sqllist AA,int n,eleemtypee x)/*在一个有nn个元素的顺顺序表A中查查找元素值为为x的元素*/ intt i=0; whiile(i=n&AAi!=x) i+; if(i=An-1) An=x; /*若若x大于最后后的元素,则则将其插入到到最后*/ elsse i=0; whille(xAAi) i+;/*查找插入入位置i*/ for(j=n;jj=i;jj-) AAj+1=Aj; /*移出插插入x的位置置*/ Ai=x; retturn (n+1);/*顺序表表长度增1*/void

6、maain() sqllist AA; intt n; n=ccreatee(A); dissp(A,nn); n=iinsertt(A,n,10);/*插入元素素10*/ dissp(A,nn); gettch();/*运行结果:创建一个顺序表表 输入元素个数数:3 输入第1个元元素值:6输入第1个元素素值:9输入第1个元素素值:14输出一个顺序表表6 9 14输出一个顺序表表6 9 10 14 */练习2.12/*设A=(aa1,am)和B=(b1,bm)均为顺序序表,A和B分别为A和和B中除去最最大共同前缀缀后的子表(例例如,A=(xx,y,y,z,x,zz),B=(x,y,yy,z,y

7、,x,x,zz),则两者者中最大的共共同前缀为(xx,y,y,z),在两两表中除去最最大的共同前前缀后的子表表分别为A=(x,zz)和B=(y,xx,x,z)。若A=B=空表,则则A=B;若若A=空表,BB!=空表,或或者两者均不不为空表,且且A的首元小于于B的首元,则则AB。试试写一个比较较A,B大小小的算法(请请注意:在算算法中,不要要破坏原表AA和B,并且且,也不一定定先求得A和B才能进行比比较)*/#includdesq.cppint commp(sqllist AA,int na,sqqlist B,intt nb) int i=0,jj=0;while(ina&jnbb&Aii+=

8、Bj+);/*比较相同部部分*/i-;j-;if(i=na&jj=nb) retuurn 0;/*a=bb*/if(i=na&j!=nbb) retturn -1;/*aab*/if(AiBj)reeturn 1;elsse retuurn -11;void maain() sqqlist A,B;int naa,nb,nn;na=creeate(AA);nb=creeate(BB);n=compp(A,naa,B,nbb);switchh(n)case 00:prinntf(AA=Bn); brreak;case 1:priintf(ABnn); bbreak;casee -1:pprint

9、ff(AB*/练习2.16/*删除A中第第i个元素起起的k个元素素*/#includdesq.cppint dellk(sqllist AA,int *n,innt i,iint k)int j;if(i*nn)printtf(i,k参数不正正确n);returrn 0;elsefor(jj=i+k-1;j*n;j+)Aj-k=Aj;(*n)-=k;returrn 1;void maain()sqlistt A;int n,i,k;n=creaate(A);disp(AA,n);printff(输入ii,k:);scanf(%d %d,&ii,&k);if(dellk(A,&n,i,kk)=1

10、)disp(A,n); getcch(); /*运行结果:创建一个顺序表表 输入元素个数数:5输入第1个元素素值:1输入第1个元素素值:2输入第1个元素素值:3输入第1个元素素值:4输入第1个元素素值:5输出一个顺序表表1 2 3 44 5输入I,k:22 2输出一个顺序表表1 4 5 */ 练习2.21/*试写一算法法,实现顺序序表的就地逆逆置,即利用用原表的存储储空间将线性性表(a1,a2,.,an)逆置为(an,an-1,.,a1).*/#includdesq.cppvoid innvert(sqlisst A,iint n) intt m=n/2,i; /*m为长长度的一半即即n2*/

11、 eleemtypee tempp; forr(i=0;i=0&j=00)if(Ai-1Bj-11)i-;elseif(AAi-1Bj-1)j-;elsee/*Aii-1=BBj-1*/Ckk+=AAi-1;i-;j-;retuurn k-1;void maain()sqlistt A,B,C;int naa,nb,nnc;na=creeate(AA);disp(AA,na);nb=creeate(BB);disp(BB,nb);nc=inttersecct(A,nna,B,nnb,C);disp(CC,nc);/*习题2.225*/*假设以两个个元素依值递递增有序排列列的线性表AA和B分别表

12、表示两个集合合(即同一表表中的元素值值各不相同),现要求另另开辟空间构构成一个线性性表C,其元元素为A和BB中元素的交交集,且表CC中的元素也也依值递增有有序排列.试试对顺序表编编写求C的算算法*/#includdesq.cppint uniions(ssqlistt A,innt na,sqlisst B,iint nbb,sqliist C)int i=0,j=00,k=0;while(ina&jnbb)if(AiBj)Ck+=Bj+;else/*Ai=Bi*/Ck+=Ai;i+;j+;if(ina)/*A还有元素素*/for(j=i;jjna;jj+)Ckk+=AAj;elsee if(

13、jjnb)/*B还有元元素*/forr(i=j;inb;i+)Ck+=Bi;retturn kk;void maain()sqlistt A,B,C;int naa,nb,nnc;na=creeate(AA);disp(AA,na);nb=creeate(BB);disp(BB,nb);nc=uniions(AA,na,BB,nb,CC);disp(CC,nc);2. 线性表实现线性表基本本算法的头文文件slinnk.cppp为:#includde#includdetypedeff int elemttype;/*定义数据据域的类型*/typedeff struuct liinknodde/*

14、定义义节点类型*/ eleemtypee dataa; strruct llinknoode *nnext;nodetyype;nodetyppe *crreate()/*建立立单链表,由由用户输入各各节点datta域之值,以以0表示输入入结束*/ eleemtypee d; noddetypee *h=NNULL,*s,*t; intt i=1; peiintf(建立一个单单链表n); whiile(1) prinntf( 输入第%dd个节点daata域值:,i); scannf(%dd,&d); if(dd=0) breakk;/*以00表示输入结结束*/ if(ii=1)/*建立第一一个

15、节点*/ h=(noodetyppe *)mmallocc(sizeeof(noodetyppe); h-daata=d;h-neext=NUULL;t=h; elsee/*建立其其余节点*/ s=(noodetyppe *)mmallocc(sizeeof(noodetyppe); s-daata=d;s-neext=NUULL;t-nextt=s; t=s;/*始终指向向生成的单链链表的最后一一个节点*/ i+; retturn hh;void diisp(noodetyppe *h)/*输出由由h指向的单单链表的所有有data域域之值*/ noddetypee *p=hh; priint

16、f(输出一个单单链表:nn ); if(p=NUULL) pprintff(空表); whiile (pp!=NULLL) prinntf(%d ,pp-datta); p=p-nextt; priintf(n);int lenn(nodeetype *h)/*返回单链表表的长度*/ intt i=0; noddetypee *p=hh; whiile(p!=NULLL) p=p-nextt; i+; retturn ii;nodetyppe finnd(noddetypee *h,iint i)/*返回第第i个节点的的指针*/ noddetypee *p=hh; intt j=1; if(i

17、lenn(h)|i=0) retuurn NUULL;/*i上溢或下下溢*/ elsse whille (p!=NULLL&jnext; retuurn p; nodetyppe *inns(noddetypee *h,iint i,elemttype xx)/*单链表heead中第ii个节点(ii=0)之之后插入一个个data域域为x的节点点*/ noddetypee *p,*s; s=(nodettype *)mallloc(siizeof(nodettype);/*创建建节点s*/ s-data=x; s-next=NULL; if(i=0)/*i=00:s作为单单链表的第一一个节点*/

18、 s-nnext=hh; h=s; elsse p=fiind(h,i);/*查找第i个个节点,并由由p指向该节节点*/ if(pp!=NULLL) s-neext=p-nextt; p-neext=s; elsee printtf(输入入的i值不正正确n); retturn hh;nodetyppe *deel(noddetypee *n,iint i)/*删除第第i个节点*/ noddetypee *p=hh,*s; intt j=1; if(i=1)/*删除第第一个节点*/ h=h-nextt; freee(p); elsse p=fiind(h,i-1);/*查找第第i-1个节节点,并

19、由pp指向该节点点*/ if(pp!=NULLL&p-nextt!=NULLL) s=p-next;/*s指向向要删除的节节点*/ p-neext=s-nextt; free(s); elsee printtf(输入入的i值不正正确n); retturn hh;void diisposee(nodeetype *h)/*释放单链表表的所有节点点占有的空间间*/ noddetypee *pa=h,*pbb; if(pa!=NNULL) pb=ppa-neext; if(ppb=NULLL)/*只只有一个节点点的情况*/ free(pa); elsee whilee(pb!=NULL)/*有两个个

20、及两个以上上的节点的情情况*/ ffree(ppa); ppa=pb; ppb=pb-nextt; free(pa); 练习2.22/*试写一算法法,对单链表表实现就地逆逆置*/#includdesliink.cppp#includdenodetyppe *innvert(nodettype *h)/*实实现单链表逆逆置*/nodetyype *pp,*q,*r;if(lenn(h)nnext;while(q!=NUULL)r=q-next;q-neext=p;p=q;qq=r;h-nexxt=NULLL;h=p;returnn h;void maain()nodetyype *hhead;h

21、ead=ccreatee();disp(hhead);head=iinvertt(headd);disp(hhead);/*运行结果建立一个单链表表 输入第1节点点data域域值:1输入第2节点ddata域值值:2输入第1节点ddata域值值:3输入第1节点ddata域值值:4输入第1节点ddata域值值:5输入第1节点ddata域值值:0输出一个单链表表1 2 3 44 5 输出一个单链表表5 4 3 22 1 */练习2.23/*设线性表AA=(a1,a2,am),B=(b1,b2,bn),试写一一个按下列规规则合并A,BB为线性表CC的算法,即即使得C=(aa1,b1,am,bm,bm+

22、1,bm) 当mn时。线性性表A,B和和C均以单链链表做存储结结构,且C表表利用A表和和B表中的结结点空间构成成。注意:单单链表的长度度值m和n均均未显示存储储*/#includdesliink.cpppnodetyppe *coombinee(nodeetype *ha,nnodetyype *hhb)nodetyype *hhc=ha,*pa=hha,*pbb=hb,*q,*r;if(lenn(pa)!=len(pb)printtf(两个个单链表长度度不同n);returrn NULLL;while(pa!=NNULL)q=pa-nextt;r=pb-nextt;pa-nnext=ppb;

23、pb-nnext=qq;pa=q;pb=r;returnn(hc);void maain()nodetyype *hheada,*headdb,*heeadc;heada=creatte();headb=creatte();headc=combiine(heeada,hheadb);disp(hheadc);练习2.26#includdesliink.cpppnodetyppe *coonnectt(nodeetype *h1,nnodetyype *hh2)nodetyype *ppa=h1,*pb=hh2,*h33,*pc;h3=(noodetyppe *)mmallocc(sizeeof

24、(noodetyppe);/*创建哨兵兵*/pc=h3;/*pc总总是指向生成成的新单链表表的最后一个个节点*/while(pa!=NNULL&pb!=NNULL)if(paa-dattadataa)pc-next=pa;pcc=pa;pa=ppa-neext;elseif(ppa-daatapbb-datta)pc-nextt=pb;ppc=pb;pb=pb-nnext;elsee/*pa-dataa=pb-data的的情况*/pc-nextt=pa;ppc=pa;pa=pa-nnext;ppb=pb-nextt;if(ppa!=NUULL) ppc-neext=paa;/*h11单链表还有

25、有节点时*/if(ppb!=NUULL) ppc-neext=pbb;/*h22单链表还有有节点时*/pc=hh3;/*删删除哨兵*/h3=hh3-neext;freee(pc);retuurn h33;void maain()nodetyype *hhead1,*headd2,*heead3;head1=creatte();head2=creatte();disp(hhead1);disp(hhead2);head3=conneect(heead1,hhead2);disp(hhead3);练习2.34#includde#includdetypedeff struuct dnnodeint

26、daata;structt dnodde *liink;dlist;dlist *xor(ddlist *p1,ddlist *p2)/*在c/c+中异或运运算符不能对对地址进行异异或运算,所所以先将地址址值转换为长长整形,然后后进行异或运运算,再将结结果强制转换换成地址。这这是本函数的的功能*/int addd1,addd2,addd3;add1=(long)p1;add2=(long)p2;add3=aadd1aadd2;returnn(dlisst *)aadd3;dlist *creatte(dliist *e)int i=1,x;dlist *headd,*r,*s,*prre;pr

27、intff(创建一一个双链表(以0结束)n);while(1)printtf( 输输入第%d节节点值: ,i);scanff(%d,&x);if(x=0)/*生成最后一一个节点的llink值后后退出循环*/pre-linkk=xor(r,NULLL);/*将ss-linnk置为前后后节点地址之之异或*/*e=ppre;breaak;s=(dllist *)mallloc(siizeof(dlistt);/*创建一个节节点*/s-daata=x;if(i=1)/*是第一个节节点的情况*/pre=head=s;r=NNULL;/*r为当前前节点的前一一个节点*/elsepre-linkk=xor(

28、r,s);/*将ss-linnk置为前后后节点地址之之异或*/r=prre;pre=s;i+;returnn headd;void orrder(ddlist *h,dllist *e)dlist *pre=NULL,*pre11,*p=hh;printff(遍历节节点序列: );if(h=NULL)printtf(空表表n);elsewhilee(p!=ee)/*遍历历最后一节点点前的所有节节点*/prinntf(%d ,pp-datta);pre11=p;p=xoor(pree,p-llink);/*为下一一个节点的地地址*/pre=pre1;printtf(%dd ,e-dataa);p

29、rinttf(nn);void maain()dlist *h,*ee;int i;h=creaate(&ee);printff(从左向向右);order(h,e);printff(从右向向左);order(e,h);/*运行结果:创建一个双链表表(以0结束束) 输入第1节点点值:3输入第1节点值值:5输入第1节点值值:8输入第1节点值值:2输入第1节点值值:6输入第1节点值值:0从左向右遍历节节点序列: 3 5 88 2 6 从右向左遍历节节点序列: 6 2 88 5 3 */第三章 栈和队队列实现栈基本算法法的头文件sstack.cpp为:#includde#definee MaxLLen

30、 200/*顺序栈栈存放的最多多元素个数为为Maxleen-1*/typedeff charr elemmtype;typedeff struuct sqqstackkelemtyype daataMaaxLen;int toop;stack;void innit(sttack *st)/*初始化栈sst*/st-toop=0;int pussh(staack *sst,eleemtypee x)/*入栈*/if(st-top=MaxLLen-1)printtf(栈溢溢出n);returrn 0;elsest-ttop+;st-ddatasst-toop=x;returrn 1;int pop

31、p(stacck *stt,elemmtype *x)/*退栈*/if(st-top=0)printtf(栈下下溢出n);returrn 0;else*x=stt-dattast-top;st-ttop-;returrn 1;int emppty(sttack *st)/*判断栈空*/if(st-top=0)returrn 1;elsereturrn 0;int getttop(sstack *st,eelemtyype *xx)/*获取取栈顶元素*/if(st-top=0)printtf(栈下下溢出n);returrn 0;else*x=stt-dattast-top;returrn 1;v

32、oid diisp(sttack *st)/*输出栈的所所有元素*/int i;for(i=st-ttop;i0;i-)printtf(%dd ,stt-dattai);printff(n);/*练习3.119*/*假设一个算算术表达式中中可以包含三三种括号,圆圆括号(和)、方方括号和和和花括号和,且这三种种括号可按任任意的次序嵌嵌套使用(如如:.(.).).编写判别给给定表达式中中所含括号是是否正确配对对出现的算法法(已知表达达式已存入数数据元素为字字符的顺序表表中*/*输入:aa+b+(c+d)+e+f*/#includdestaack.cppp#includdeint corrrect(

33、char *str)stack st;char xx;int i,ok=1;init(&st);for(i=0;strri!=0;i+)switcch(strri)case(:puush(&sst,();breeak;case:puush(&sst,);breeak;case:puush(&sst,);breeak;case):iff(!(poop(&stt,&x)&x=()okk=0;brreak;case:iff(!(poop(&stt,&x)&x=)okk=0;brreak;case:iff(!(poop(&stt,&x)&x=)okk=0;brreak;if(!ook) brreak;

34、if(emppty(&sst)&ook)returrn 1;elsereturrn 0;void maain()char *str;str=(cchar*)mallooc(1000*sizeeof(chhar);printff(strr: );scanf(%s,str);if(corrrect(str)printtf(表达达式括号匹配配n);elseprinttf(表达达式括号不匹匹配n); gettch();练习3.21#includde#definee MaxLLen 1000int traans(chhar sttr,cchar eexp)int sttMaxLLen;/*作为栈使使用*

35、/char cch;int i=0,t=00,top=-1;/*t作为exxp的下标,ttop作为sst的下标,ii作为strr的下标*/while(ch=sstri+)!=0)if(chh=0 & cch=0 & ch=0 & sttop!=()exppt=ssttopp;topp-;t+;top+;sttop=ch;else if(chh=*|ch=/)whille (stttop=* | ssttopp=/)exppt=ssttopp;topp-;t+;top+;sttop=ch;while(top=0)exptt=sttop;t+;ttop-;expt=0;returnn 1;int

36、commpvaluue(chaar expp,innt *n)int sttMaxLLen,dd;/*作为为栈使用*/char cch;int t=0,topp=-1;/*t作为eexp的下标标,top作作为st的下下标*/while (ch=exptt+1)!=0)if(chh=0 & cch=99)/*为为数字字符时时转换为数字字*/d=0;dod=110*d+cch-0;whiile(cch=exppt+)!=#);top+;sttop=d;/*数数字进栈*/else /*为运运算符时,计计算并退栈*/swittch(chh)casee+:ssttopp-1=ssttopp-1+sstt

37、opp;breeak;casee-:ssttopp-1=ssttopp-1-ssttopp;breeak;casee*:ssttopp-1=ssttopp-1*ssttopp;breeak;casee/:iif(sttop!=0) ssttopp-1=ssttopp-1/ssttopp;elssereeturn 0;/*除除0错误*/breeak;top-;(*n)=ssttopp;returnn 1;void maain()char sstrMaaxLen;/*存储储原算术表达达式*/char eexpMaaxLen;/*存储储转换成的波波兰表达式*/int n;printff(算术表表达式

38、: );scanf(%s,&str);if(traans(sttr,expp)=0)printtf(原算算术表达式不不正确n);elseprinttf(波兰兰表达式: %dn,exp);if(coompvallue(exxp,&n)=1)prinntf(计计算结果: %dn,n);elseprinntf(计计算错误nn);练习3.27/*已知Ackkermann函数的定义义如下:Akm(m,nn)=n+11(m=0),akm(m-1,11)(m!=0,n=00) akmm(m-1),akm(m,n-11)(m!=0,n!=0)1.写出递归算算法;2。写写出非递归算算法;3。根根据非递归算算法,

39、画出求求akm(22,1)时栈栈的变化过程程*/#includde#definee MaxLLen 50000/*此此数应足够大大,因为m和和n值的较小小增长会引起起函数值的极极快增长,用用的栈的空间间也很大*/int f1(int mm,int n)if(m=0)returrn n+11;elseif(n=0) rreturnn f1(mm-1,1);elseretuurn f11(m-1,f1(m,n-1);int no(int mm,int n)if(m=0)returrn 1;else iif(n=0)returrn 2;else rreturnn 3;int f2(int mm,in

40、t n)int sttMaxLLen44,topp=1,m11,n1;sttopp0=no(m,n);sttopp1=0;/*初初值0进栈*/sttopp2=m;/*初初值m进栈*/sttopp3=n;/*初初值n进栈*/do /*开开始循环*/if(stttop1=0)if(ssttopp0=3)topp+;sttop1=0;sttop2=stttop-12;sttop3=stttop-13-1;sttop0=noo(stttop22,sttop3);elsee if(ssttopp0=2)topp+;sttop1=0;sttop2=stttop-12-1;sttop3=1;sttop0=n

41、oo(stttop22,sttop3);if(ssttopp0=1)sttop1=stttop3+11;if(toop=1&stttop11!=0&stttop-10=2)stttop-11=ssttopp1;top-;else if(toop=1&stttop11!=0&stttop-10=3)n1=ssttopp1;m1=ssttopp-122-1;top-;stttop11=0;stttop22=m1;stttop33=n1;stttop00=no(sttoop2,stttop33);if(toop=1&stttop11!=0)/*栈中已有有一个元素,且已计算出值,则退出循环*/breaak;whilee(top=1);returnn (st11);void maain()int n,m;printff(inpput m n:);scanf(%d %d,&mm,&n);printff(diggui c(%d,%dd)=%dn,m,n,f1(m,n);printff(feiidiguii c(%dd,%d)=%dn,m,n,f2(m,n);systemm(pauuse);/*输入:3 8回车digui cc(3,8)=20455feidiguui c(33,8)=22045*/练习3.28

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!