数据结构的试题有答案讲解_第1页
数据结构的试题有答案讲解_第2页
数据结构的试题有答案讲解_第3页
数据结构的试题有答案讲解_第4页
数据结构的试题有答案讲解_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章绪论一、 单选题一个数组元素a[i]与A的表示等价。A*(a+i)Ba+iC*a+iD&a+i2■对于两个函数,若函数名相同,但只是C不同则不是重载函数。A参数类型B参数个数C函数类型3•若需要利用形参直接访问实参,则应把形参变量说明为B参数。A指针B引用C值4.下面程序段的复杂度为C。for(inti=O;ivm;i++)for(intj=O;jvn;j++)a[i][j]=i*j;AO(m2)B0(n2)CO(m*n)DO(m+n)5■执行下面程序段时,执行S语句的次数为D。for(inti=1;i<=n;i++)for(intj=1;j<=i;j++)S;An2Bn2/2Cn(n+1)Dn(n+1)/2下面算法的时间复杂度为B。intf(unsignedintn){if(n==0||n==1)return1;Elsereturnn*f(n-1);}AO(1)B0(n)C0(n2)D0(n!)二、 填空题1•数据的逻辑结构被除数分为集合结构、线性结构、树型结构和图形结构四种。数据的存储结构被分为顺序结构、链接结构、索引结构和散列结构四种。在线性结构、树型结构和图形结构中,前驱和后继结点之间分别存在着1对1、1对N和M对N的关系。一种抽象数据类型包括数据和操作两个部分。5•当一个形参类型的长度较大时,应最好说明为引用以节省参数值的传输时间和存储参数的空间。当需要用一个形参访问对应的实参时,则该形参应说明为引用。在函数中对引用形参的修改就是对相应实参的修改,对值(或赋值)形参的修改只局限在该函数的内部,不会反映到对应的实参上。8■当需要进行标准I/O操作时,则应在程序文件中包含iostream.h头文件,当需要进行文件I/O操作时,则应在程序文件中包含fstream.h头文件。在包含有stdlib.h头文件的程序文件中,使用rand()%21能够产生0-20之间的一个随机数。一个记录r理论上占有的存储空间的大小等于所有域的长度之和,实际上占有的存储空间的大小即记录长度为sizeof(r)。一个数组a所占有的存储空间的大小即数组长度为sizeof(a),下标为i的元数a[i]的存储地址为a+1,或者为(char*)a+i*sizeof(a[i])。12■函数重载要求参数类型、参数个数或排列顺序有所不同。对于双目操作符,其重载函数带有2个参数,其中至少有一个为用户自定义的类型。若对象ra和rb中至少有一个属于用户定义的类型,则执行ra==rb时,需要调用等于号(==)重载函数,该函数第一个参数应与ra,的类型相同,第二个参数应与rb的类型相同。从一维数组a[n]中顺序查找出一个最大值元素的时间复杂度为O(n),输出一个二维数组b[m][n]中所有元素值的时间复杂度为O(m*n)。 一在下面程序段中,s=s+p语句的执行次数为n,p*=j语句的执行次数为n(n+1)/2,该程序段的时间复杂度为O(n2)。inti=0,s=0;while(++i<=n){intp=1;for(intj=1;j<=i;j++)P*=j;s=s+p;}一个算法的时间复杂度为(3n2+2nlog2n+4n-7)/(5n),其数量级表示为O(n)。从一个数组a[7]中顺序查找元素时,假定查找第一个元素a[0]的概率为1/3,查找第二个元素a[1]的概率为1/4,查找其余元素的概率均相同,则在查找成功时同元素的平均比较次数为35/12。三、应用题1■设计二次多项式ax2+bx+c的一种抽象数据类型,假定起名为QIAdratic,该类型的数据部分分为三个系数项a、b和c,操作部分为:(请写出下面每一个操作的具体实现)。⑴初始化数据成员ab和c(假定用记录类型Quadratie定义成员),每个数据成员的默认值为0。QuadraticInitQuadratic(floataa=0,floatbb=0,floatcc=0);解QuadraticInitQuadratic(floataa,floatbb,floatcc){Quadraticq;q.a=aa;q.b=bb;q.c=cc;returnq;}⑵做两个多项式加法,即使对应的系数相加,并返回相加的结果。QuadraticAdd(Quadraticq1,Quadraticq2);解:QuadraticAdd(Quadraticq1,Quadraticq2);{Quadraticq;q.a=q1.a+q2.a;q.b=q1.b+q2.b;q.c=q1.c+q2.c;returnq;}⑶根据给定x的值计算多项式的值。floatEval(Quadraticq,floatx);解:floatEval(Quadraticq,floatx){return(q.a*x*x+q.b*x+q.c);⑷计算方程ax2+bx+c=0的两个实数根,对于有实根、无实根和不是实根方程(即a==0)这三种情况要返回不同的整数值,以便于工作调用函数做不同的处理。intRoot(Quadraticq,float&r1,foat&r2);解:intRoot(Quadraticq,float&r1,float&r2){if(q.a==0)return-1;floatx=q.b*q.b-4*q.a*q.c;if(x>=0){r1=(float)(-q.b+sqrt(x))/(2*q.a);r2=(float)(-q.b-sqrt(x))/(2*q.a);return1;}elsereturn0;}⑸按照ax**2+bx+c的格式(x2用x**2表示)输出二次多项式,在输出时要注意去掉系数为0的项,并且当b和c的值为负时,其前不能出现加号ovoidPrint(Quadraticq)解:voidPrint(Quadraticq){if(q.a)coutvvq.avv"x**2";if(q.b)if(q.b>0)coutvv"+"vvq.bvv"x";elsecoutvvq.bvv"x";if(q-c)if(q.c>0)coutvv"+"vvq.c;elsecoutvvq.c;coutvvendl;}指出下列各算法的功能并求出其时间复杂度。⑴intprime(intn){inti=1;intx=(int)sqrt(n);while(++iv=x)if(n%i==O)break;if(i>x)return1;elsereturn0;}解:判断n是否是一个素数,若是则返回数值1,否则返回0。该算法的时间复杂度为O(nI/2)。⑵intsum1(intn){intp=1,s=0;for(inti=1;iv=n;i++){p*=i;s+=p;}returns;}解:计算习!(上标为n,下标为i=1)的值,其时间的复杂度为0(n)。⑶intsum2(intn){ints=0;for(inti=1;iv=n;i++){intp=1;for(intj=1;jv=i;j++)p*=j;s+=p;}returns;}解:计算习啲值,时间复杂度为O(n2)⑷intfun(intn){inti=1,s=1;while(svn)s+=++i;returni;}解:求出满足不等式1+2+3...+i>n的最小i值,其时间复杂度为O(nI/2)。voidUseFile(ifstream&inp,intc[10])//假定inp所对应的文件中保存有n个整数{for(inti=0;iv10;i++)c[i]=0;intx;while(inp>>x){i=x%10;c[i]++;}}解:利用数组c[10]中的每个元素c[i]对应统计出inp所联系的整数文件中个位值同为i的整数个数,时间复杂度为O(n)⑹voidmtable(intn){for(inti=1;iv=n;i++){for(intj=i;jv=n;j++)coutvvivv"*"vvjvv"="vvsetw(2)vvi*jvv"";coutvvendl;}}解:打印出一个具有n行的乘法表,第i行(1SiSn)中有n-i+1个乘法项,每个乘法项为i与j(i<j<n)的乘积,时间复杂度为0(n2)。⑺voidcmatrix(inta[M][N]Jntd)//M和N为全局整型常量{for(inti=0;ivM;i++)for(intj=0;jvN;j++)a[i][j]*=d;}解:使数组a[M][N]中的每一个元素均详细以d的值,时间复杂度为O(M*N)⑻voidmatrimult(inta[M][N],intb[N][L],intc[M][L]){inti,j,k;for(i=0;ivM;i++)for(j=0;jvL;j++)c[i][j]=0;for(i=0;ivM;i++)for(j=0;jvL;j++)for(k=0;kvN;k++)c[i][j]+=a[i][k]*b[k][j];}解:矩阵相乘,即a[M][N]xb[N][L]-c[M][L],时间复杂度为O(MxNiL)。第二章线性表一、 (答案)⑴解:(79,62,34,57,26,48)(2)解:(26,34,48,57,62,79)⑶解:(48,56,57,62,79,34)⑷解:(56,57,79,34)(5)解:(26,34,39,48,57,62)二、 对于List类型的线性表,编写出下列每个算法。⑴从线性表中删除具有最小值的元素并由函数返回,空出的位置由最后一个元素填补,若线性表为空则显示出错信息并退出运行。解:ElemTypeDMValue(List&L)〃从线性表中删除具有最小值的元素并由函数返回,空出的位置//由最后一个元素填补,若线性表为空则显示出错信息并退出运行{if(ListEmpty(L)){cerrvv"ListisEmpty!"vvendl;exit(1);}ElemTypex;x=L」ist[O];intk=0;for(inti=1;ivL.size;i++){ElemTypey=L」ist[i];if(yvx){x=y;k=i;}}L」ist[k]=L」ist[L.size-1];L.size--;returnx;}⑵从线性表中删除第i个元素并由函数返回。解:intDeletel(List&L,inti)〃从线性表中删除第i个元素并由函数返回{if(iv1||i>L.size){cerrvv"Indexisoutrange!"vvendl;exit(1);}ElemTypex;x=L.list[i-1];for(intj=i-1;jvL.size-1;j++)L」ist[j]=L」ist[j+1];L.size--;returnx;}⑶向线性表中第i个元素位置插入一个元素。解:voidInser1(List&L,inti,ElemTypex)〃向线性表中第i个元素位置插入一个元素{if(iv1||i>L.size+1){cerrvv"Indexisoutrange!"vvendl;exit(1);}if(L.size==MaxSize){cerrvv"Listoverflow!"vvendl;exit(1);}for(intj=L.size-1;j>i-1;j--)L.list[j+1]=L.list[j];L.list[i-1]=x;L.size++;}⑷从线性表中删除具有给定值x的所有元素。解:voidDelete2(List&L,ElemTypex)〃从线性表中删除具有给定值x的所有元素{inti=0;while(ivL.size)if(L.list[i]==x){for(intj=i+1;jvL.sizr;j++)L.list[j-1]=L.list[j];L.size--;}elsei++;

对于结点类型为LNode的单链接表,编写出下列每个算法。⑴将一个单链接表按逆序链接/即若原单链表中存储元素的次序为a1,a2,…,an,则逆序链接后变为an,an-1,…al。解:voidContrary(LNode*&HL)//将一个单多办实事有按逆序链接{LNode*p=HL;//p指向待逆序的第一个结点,初始指向原表头结点HL=NULL;//HL仍为逆序后的表头指针,禄始值为空while(p!=NULL){〃把原单链表中的结点依次进行逆序链接LNode*q=p;//q指向待处理的结点p=p->next;//p指向下一个待逆序的结点〃将q结点插入到已陈序单链表的表头q->next=HL;HL=q;}}⑵删除单链表中的第i个结点。解:voidDelete1(LNode*&HL,inti)〃删除单链表中的第i个结点{if(iv1||HL==NULL){cerrvv"Indexisoutrange!"vvendl;exit(1);}LNode*ap,*cp;ap=NULL;cp=HL;//cp指向当前结点,ap指向其前驱结点intj=1;while(cp!=NULL)if(j==i)break;//cp结点即为第i个结点else{〃继续向后寻找ap=cp;cp=cp->next;j++;}if(cp==NULL){cerrvv"Indexisoutrange!"vvendl;exit(1);}if(ap==NULL)HL=HL->next;elseap->next=cp->next;deletecp;}⑶从单链表中查找出所有元素的最大值,该值由函数返回,若单链表为空,则显示出错信息并停止运行。解:ElemTypeMaxValue(LNode*HL)〃从单链表中查找出所有元素的最大值,该值由函数返回{if(HL==NULL){cerrvv"Linkedlistisempty!"vvendl;exit(1);}ElemTypemax=HL->data;LNode*p=HL->next;while(p!=NULL){if(maxvp->data)max=p->data;p=p->next;}returnmax;}⑷统计出单链表中结点的值等于给定值x的结点数。解:intCount(LNode*HL,ElemTypex)〃统计出单链表中结点的值等于给定值x的结点数{intn=0;while(HL!=NULL){if(HL->data==x)n++;HL=HL->next;}returnn;}第三章稀疏距阵和广义表一、 单选题1•在稀疏矩阵的带行指针指向量的链接存储中,每个行单链表中的结点都具有相同的A。A行号B列号C元素值D地址2■设一个具有t个非零元素的m*n大小的稀疏矩阵采用顺序存储,求其转置矩阵的普通转置算法的时间复杂度为D。AO(m)B0(n)CO(n+t)D0(n*t)设一个广义表中结点的个数为n,则求广义表深度算法的时间复杂度为B。AO(1)BO(n)C0(n2)DO(log2n)二、 填空题在一个稀疏矩阵中,每个非零元素所对应的三元组包括该元素的行号、列号、和元素值。在稀疏矩阵所对应的三元组线性表中,每个三元组元素按行号为主序、列号为辅助的次序排列。在初始化一个稀疏矩阵的函数定义中,矩阵形参应说明为引用参数。4■在稀疏矩阵的顺序存储中,利用一个数组来存储非零元素,该数组的长度应大于等于对应的三元线性表的长度。5•在稀疏矩阵的带行指针向量的链接存储中,每个结点包含有4个域,在相应的十字链接存储中,每个结点包含有5个域。在稀疏矩阵的十字链接存储中,每个结点的down指针域指向行号相同的下一个结点,right指针指向列号相同的下一个结点。—个广义表中的元素为单元素和表元素两类。一个广义表的深度等于括号嵌套的最大层数。在广义表的存储结构中,每个结点均包含有3个域。在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为值域和子表指针域。若把整个广义表也看为一个表结点,则该结点的tag域的值为true或1、next域的值为NULL或0。三、 应用题1.已知一个稀疏矩阵如图3-11所示:0400000000-3001800000000050000-7000200006000图3-11具有6行X7列的一个稀疏矩阵⑴写出它的三元组线性表;解 :((1,2,4),(2,4,-3),(2,7,1),(3,1,8),(4,4,5),(5〃2,-7),(5,6,2),(6,4,6))⑵给出它的顺序存储表示;解:一下标12345678...MaxTermsrow(行号)12234556col(列号)24714264val(元素值)4-3185-726⑶给出它的转置矩阵的三元组线性表和顺序存储表示;解:((1,3,8),(2,1,4),(2,5,-7),(4,2,-3),(4,4,5),(4,6,6),(6,5,2),(7,2,1))解:下标1234567row(行号)12col(列号)31val(元素值)843.画出下列每个广义表的带表头附加结点的链接存储结构图并分别计算出它们的长度和深度。⑴A=(())⑵B=(a,b,c)⑶C=(a,(b,(c)))⑷D=((a,b),(c,d))⑸E=(a,(b,(c,d)),(e))⑹F=((a,(b,(),c),((d)),e)))解:每小题的长度和深度如下表示。题号123456长度132231深度213234第四章栈和队列一、应用题1.设用第二章定义的类型为AlinkList的一维数组MS[MaxSize]建立三个链接堆栈,其中前三个元素的next域用来存储三个栈顶指针,从下标为3的元素起作为空闲元素提供给三个栈共同使用,试编写一个算法把从键盘上输入的n个整数按照下列条件分别进入不同的栈:⑴若输入的整数x小于60,则进第一个栈;⑵若输入的整数x大于等于60同时小于100,则进第二个栈;⑶若输入的整数大于100,则进第三个栈。解:voidMoreStack(ALinkListMS,intn)〃把从键盘上输入的n个整数按不同条件分别进入到三个不同的链接栈中{if(n>MaxSize-3){cerrvv"存储空间不足!";exit(1);}inti,x,av;for(i=0;iv3;i++)MS[i].next=0〃置空栈,即给三个栈顶指针赋0av=3;//av指向可利用元素的下标,赋初值为3coutvv"输入"vvnvv"个整数:"vvend1;for(i=0;ivn;i++){〃从键盘读入一个整数并把它赋给av元素的值域cin>>x;MS[av].data=x;〃按条件把av元素压入不同的栈,即链接到相应栈的栈顶if(xv60){Ms[av].next=MS[0].next;MS[0].next=av;}elseif(x>=60&&xv=100){MS[av].next=MS[1].next;MS[1].next=av;}else{MS[av].next=MS[2].next;Ms[2].next=av;}〃使av指向下一个可利用元素av++;}}2•编写一个程序,首先调用上题算法,然后分别打印出每个栈中的内容。解:#includeviostream.h>#include<stdlib.h>constintMaxSize=50;〃要至少定义为比输入的整数个数大3typedefintElemType;structALNode{ElemTypedata;intnext;};typedefALNodeALinkList[MaxSize];voidMoreStack(ALinkListMS,intn){//函数体在此省略}voidmain(){ALinkLista;intn;coutvv"从键盘输入的整数个数(1〜47):";cin>>n;MoreStack(a,n);for(inti=0;iv3;i++){〃依次将每个栈中的元素全部出栈并打印出来intj=a[i].next;while(j!=0){coutvva[j].datavv"";j=a[j].next;}coutvvendl;}}一次输入和运行结果如下:从键盘上输入的整数个数为(1〜47):12输入12个整数:386497120783345214882514360254533386088789764143214120已知一个中缀算术表达式为:3+4/(25-(6+15))*8@⑴写出对应的后缀算术表达式。解:3425615+-/8*+@⑵画出在转换成后缀表达式的过程中运算符栈的变化。解:略已知一个后缀算术表达式为:248+3*4107-*/@⑴写出对应的中缀算术表达式。解:(24+8)*3/(4*(10-7))⑵画出在进行后缀算术表达式求值的过程中数值栈的变化。解:略5•编写把十进制正整数转换为十六进制数输出的算法。解: voidTransform(longnum)〃把一个正整数num转为一个十六进制数输出{Stacka;InitStack(a);while(num!=0){intk=num%16;Push(a,k);num/=16;}while(!StackEmpty(a)){intX=Pop(a);if(xv10)coutvvx;else{switch(x){cass10:coutvv'A';break;cass11:coutvv'B';break;cass12:coutvv'C';break;cass13:coutvv'D';break;cass14:coutvv'E';break;cass15:coutvv'F';}}}coutvvend1;}编写把十进制正整数转换为S进制(2<S<鐵输出的递归算法,然后若把425转换为六进制数,画出每次递归调用前和返回后系统栈的状态。解:只给出递归算法,画图从略。voidTransform(longnum,ints)〃把十进制正整数转换为S进制数的递归算法{intk;if(num!=0){k=num%S;Transfrom(num/S,S);coutvvk;}}裴波那契(Fibonacci)数列的定义为:它的第一项和第二项均为1,以后各项为其前两项之和。若裴波那契数列中的第n项用Fid(n)表示,则计算公式为:1 (n=1或n=2)Fib(n)=Fib(n-1)+Fib(n-2)(n>=2)试编写计算Fib(n)的递归算法和非递归算法,并分析它们的时间复杂度和空间复杂度。解:递归算法为:longFib(intn){if(n==1||n==2)〃终止递归条件return1;elsereturnFib(n-1)+Fib(n-2);}非递归算法为longFib1(intn){inta,b,c;//C代表当前项,a和b分别代表当前项前面的第2项和第1项a=b=1; 〃给a和b赋初值1if(n==1||n==2)return1;elsefor(inti=3;i<=n;i++){c=a+b;//求出当前项a=b;//把前面第1项赋给前面第2项b=c;//把当前项赋给前面第1项}returnc;〃返回所求的第n项}递归算法时间复杂度0(2n)、空间复杂度0(n)非递归算法时间复杂度0(n)、空间复杂度0(1)第五章树和二叉树一、填空题1.对于一棵具有n个结点的树,该树中所有结点的度数之和为n-1。2■假定一棵三叉树的结点个数为50,则它的最小深度为5,最大深度为50。3■在一棵高度为h的四叉树中,最多含有(4h-1)/3结点。 4■在地棵三叉树中,度为3的结点数有2个,度为2的结点数有1个,度为1的结点数为2个,那么度为0的结点数有6个。一棵深度为5的满二叉树中的结点数为31个,一棵深度为3的满四叉树中的结点数为21个。假定一棵树的广义表示为A(B(C,D(E,F,G),H(I,J))),则树中所含的结点数为10个,树的深度为4个,树的度为3。假定一棵树的广义表表示为A(B(C,D(E,F,G),H(I,J))),则度为3,2,1,0的结点数分别为2、1、1和6个。假定一棵树的广义表示为A(B(C,D(E,F,G),H(I,J))),则结点H的双亲结点为B个,孩子结点为I和J。在一棵二叉树中,假定双亲结点数为5个,单分支结点監对于一棵二叉树,若一个结点的编号为i,则它的左孩子结点的编号为2i,右孩子结点的编号为2i+1,双亲结点编号为i/2。11.在一棵二叉树中,第5层上的结点数最多为16。12■假定一棵二叉树的结点数为18,则它的最小深度为5,最大深度为18。一棵二叉树的广义表表示为a(b(e,d),e(f(,g))),则e结点的双亲结点为a,左孩子结点为f,右孩子结点为空一棵二叉树的广义表表示为a(b(e,d),e(f(,g))),它含有双亲结点2个,单分支结点2个,叶子结点3个。对于一棵含有40个结点的理想平衡树,它的高度为616■假一定一棵二叉树顺序存储在一维数组a中,则a[i]元素的左孩子元素为a[2i],右孩子元素为a[2i+1],双亲元素(卜1)为a[i/2]。17.假定一棵二叉树顺序存储在一维数组a中,但让编号为1的结点存入a[0]元素中,让编号为2的结点存入a[1]元素中,其余类推,则编号为i结点的左孩子结点对应的存储位置为2i-1,若编号为i结点的存储位置用j表示,则其左孩子结点对应的存储位置为2j+1。18■若对一棵二叉树从0开始进行结点编号,并按此编号把它顺序存储到一维数组a中,即编号为0的结点存储到a[0]中,其余类推,则a[i]元素的左孩子元素为a[2i+1],右孩子元素为a[2i+2],双亲元素(卜>0)为a[(i-1)/2]。19.对于一棵具有n个结点的二叉树,对应二叉链接表中指针总数为2n个,其中n-1个用于指向孩子结点,n+1个指针空闲着。20■—棵二叉树广义表表示为a(b(d(,h)),c(e,f(g,i(k)))),该树的结点数为10个,深度为5。在一棵高度为5的理想平衡树中,最少含有16个结点,最多含有31个结点。在一棵高度为h的理想平衡树中,最少含有2h-1个结点,最多含有2h-1个结点。23■假定一棵二叉树广义表表示为a(b(c),d(e,f)),则对它进行的先序遍历结果为abcdef中序遍历结果为cbaedf后序遍历结果为cbefda按层遍历结果为abdcef。24.假定一棵普通树的广义表表示为a(b((e),c(f(h,i,j),g),d),则先根遍历结果为abecfhijgd,按层遍历结果为abcdefghij。二、应用题1.已知一棵具有n个结点的完全二叉树被顺序存储于一维数组的A[1]〜A[n]元素中,试编写一个算法打印出编号为i的结点的双亲和所有孩子。解:voidRequest(inta[],intn,inti)〃从数组A中打印出编号为i的结点的双亲和孩子{if(i>n){cerrvv"编号为"vvivv"的结点不存在!"vvend1;exit(1);}coutvv"currentelement:"vvA[i]vvend1;intj=i/2;〃下标为j的结点是下标为i结点的双亲if(j>0)coutvv"parent:"vvA[j]vvend1;elsecoutvv"树根结点没有双亲结点!"vvend1;if(2*ivn){coutvv"leftchild:"vvA[2*i]v≪end1;coutvv"rightchild:"vvA[2*i+1]vvend1;}elseif(2*i==n){coutvv"leftchild:"vvA[2*i]vvend1;coutvv"norightchild!"vvend1;}elsecoutvv"nochildren!"vvend1;}2•编写一算法,求出一棵二叉树中所有结点数和叶子结点,假定分别用变参C1和C2统计所有结点数和叶子结点数,初值均为0。解:voidCount(BTreeNode*BJ!nt&C1,int&C2)〃分别统计出二叉树中所有结点数和叶子结点数{if(BT!=NULL){C1++;//统计所有结点if(BT->left==NULL&&BT->right==NULL)C2++;

温馨提示

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

评论

0/150

提交评论