2023年新版数据结构实验报告_第1页
2023年新版数据结构实验报告_第2页
2023年新版数据结构实验报告_第3页
2023年新版数据结构实验报告_第4页
2023年新版数据结构实验报告_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

姓名:关宏新学号:班级:计084班指导教师:储岳中实验一线性表基本操作的实现一、实验目的1、掌握使用TurboC2.0上机调试线性表的基本方法;2、掌握线性表的基本操作:插入、删除、查找等运算在顺序存储结构和链式存储结构上的运算。二、实验规定1、链表插入、删除和查找算法的代码;2、程序运营结果及分析;3、实验总结。三、实验内容1、认真阅读和掌握本实验的参考程序。2、上机运营本程序,并完善删除、查找等运算。3、保存程序的运营结果,并结合程序进行分析。4、按照你对链表操作需要,重新改写算法并运营,实现链表的插入、删除、查找等运算,并保存运营结果。四、程序流程图、算法及运营结果1-1#include"stdio.h"#include"stdlib.h"#defineMAXSIZE100structSeqList{intdata[MAXSIZE];intlength;};typedefstructSeqList*PSeqList;PSeqListcreaeNullList_seq(){PSeqListpalist=(PSeqList)malloc(sizeof(structSeqList));if(palist!=NULL){palist->length=0;return(palist);}printf("Outofspace!!\n");returnNULL;}intisNullList_seq(PSeqListpalist){return(palist->length==0);}intinsertPre_seq(PSeqListpalist,intp,intx){intq;if(palist->length>=MAXSIZE){printf("overflow!\n");return(0);}if(p<0||p>palist->length){printf("Notexist!\n");return(0);}if(isNullList_seq(palist)){palist->data[0]=x;palist->length=1;return(1);}for(q=palist->length-1;q>=p;q--)palist->data[q+1]=palist->data[q];palist->data[p]=x;palist->length=palist->length+1;return(1);}voidmain(){inti;PSeqListlist;list=creaeNullList_seq();printf("插入前的顺序表为:\n");for(i=0;i<=9;i++){insertPre_seq(list,i,i*i);printf("%d",list->data[i]);}insertPre_seq(list,5,55);printf("\n插入后的顺序表为:\n");for(i=0;i<list->length;i++)printf("%d",list->data[i]);printf("\n");getch();}1-2#include"stdio.h"#include"stdlib.h"#defineMAXSIZE100structSeqList{intdata[MAXSIZE];intlength;};typedefstructSeqList*PSeqList;PSeqListcreaeNullList_seq(){PSeqListpalist=(PSeqList)malloc(sizeof(structSeqList));if(palist!=NULL){palist->length=0;return(palist);}printf("Outofspace!!\n");returnNULL;}intisNullList_seq(PSeqListpalist){return(palist->length==0);}/*插入*/intinsertPre_seq(PSeqListpalist,intp,intx){intq;if(palist->length>=MAXSIZE){printf("overflow!\n");return(0);}if(p<0||p>palist->length){printf("Notexist!\n");return(0);}if(isNullList_seq(palist)){palist->data[0]=x;palist->length=1;return(1);}for(q=palist->length-1;q>=p;q--)palist->data[q+1]=palist->data[q];palist->data[p]=x;palist->length=palist->length+1;return(1);}/*删除*/intdeletePre_seq(PSeqListpalist,inti){intj;if(!palist){printf("表不存在");return(-1);}if(i<1||i>palist->length){printf("删除位置不合法");return(0);}for(j=i;j<palist->length;j++)palist->data[j-1]=palist->data[j];palist->length--;return(1);}/*检索ElementType*/intlocationPre_seq(PSeqListpalist,intx){inti=0;if(!palist){printf("表不存在");return(-1);}while(i<palist->length&&palist->data[i]!=x)i++;if(i>=palist->length)return0;elsereturn(i+1);}voidmain(){inti;PSeqListlist;list=creaeNullList_seq();printf("插入前的顺序表为:\n");for(i=0;i<=9;i++){insertPre_seq(list,i,i*i);printf("%d",list->data[i]);}insertPre_seq(list,5,55);printf("\n插入后的顺序表为:\n");for(i=0;i<list->length;i++)printf("%d",list->data[i]);printf("\n");printf("删除前的顺序表为:\n");for(i=0;i<=9;i++){insertPre_seq(list,i,i*i);printf("%d",list->data[i]);}deletePre_seq(list,5);printf("\n删除后的顺序表为:\n");for(i=0;i<=8;i++)printf("%d",list->data[i]);printf("\n");if(locationPre_seq(list,9)==0)printf("检索的内容不存在!");if(locationPre_seq(list,9)!=0&&locationPre_seq(list,9)!=-1)printf("检索的内容下标为:%d",locationPre_seq(list,9));printf("\n");getch();}实验二栈的基本操作一、实验目的掌握栈的基本操作:初始化栈、判栈为空、出栈、入栈等运算。二、实验规定1.认真阅读和掌握本实验的算法。2.上机将本算法实现。3.保存程序的运营结果,并结合程序进行分析。三、实验内容运用栈的基本操作实现将任意一个十进制整数转化为R进制整数算法为:1、定义栈的顺序存取结构2、分别定义栈的基本操作(初始化栈、判栈为空、出栈、入栈等)3、定义一个函数用来实现上面问题:(1)十进制整数X和R作为形参(2)初始化栈(3)只要X不为0反复做下列动作将X%R入栈,X=X/R(4)只要栈不为空反复做下列动作栈顶出栈,输出栈顶元素四、程序流程图、算法及运营结果2-1#include<stdio.h>#include<stdlib.h>#include<malloc.h>#definestack_init_size100#definestackincrement10typedefstructsqstack{int*base;int*top;intstacksize;}sqstack;intStackInit(sqstack*s){s->base=(int*)malloc(stack_init_size*sizeof(int));if(!s->base)return0;s->top=s->base;s->stacksize=stack_init_size;return1;}intPush(sqstack*s,inte){if(s->top-s->base>=s->stacksize){s->base=(int*)realloc(s->base,(s->stacksize+stackincrement)*sizeof(int));if(!s->base)return0;s->top=s->base+s->stacksize;s->stacksize+=stackincrement;}*(s->top++)=e;returne;}intPop(sqstack*s,inte){if(s->top==s->base)return0;e=*--s->top;returne;}intstackempty(sqstack*s){if(s->top==s->base){return1;}else{return0;}}intconversion(sqstack*s){intn,e=0,flag=0;printf("输入要转化的十进制数:\n");scanf("%d",&n);printf("要转化为多少进制:2进制、8进制、16进制填数字!\n");scanf("%d",&flag);printf("将十进制数%d转化为%d进制是:\n",n,flag);while(n){Push(s,n%flag);n=n/flag;}while(!stackempty(s)){e=Pop(s,e);switch(e){case10:printf("A");break;case11:printf("B");break;case12:printf("C");break;case13:printf("D");break;case14:printf("E");break;case15:printf("F");break;default:printf("%d",e);}}printf("\n");return0;}intmain(){sqstacks;StackInit(&s);conversion(&s);return0;}2-2#include<stdlib.h>#defineMAXSIZE100structstack{intdata[MAXSIZE];inttop;};voidinit(structstack*s){s->top=-1;}intempty(structstack*s){if(s->top==-1)return1;elsereturn0;}voidpush(structstack*s,inti){if(s->top==MAXSIZE-1){printf("Stackisfull.\n");return;}s->top++;s->data[s->top]=i;}intpop(structstack*s){if(empty(s)){printf("Stackisempty.");return-1;}return(s->data[s->top--]);}voidtrans(intnum){structstacks;intk;init(&s);while(num){k=num%16;push(&s,k);num=num/16;}while(!empty(&s)){k=pop(&s);if(k<10)printf("%d",k);elseprintf("%c",k+55);}printf("\n");}main(){intnum;clrscr();printf("Inputanum(-1toquit):\n");scanf("%d",&num);while(num!=-1){trans(num);scanf("%d",&num);}getch();}实验三串的模式匹配一、实验目的1.运用顺序结构存储串,并实现串的匹配算法。2.掌握简朴模式匹配思想,熟悉KMP算法。二、实验规定ﻫ1.认真理解简朴模式匹配思想,高效实现简朴模式匹配;2.结合参考程序调试KMP算法,努力算法思想;3.保存程序的运营结果,并结合程序进行分析。三、实验内容

1、通过键盘初始化目的串和模式串,通过简朴模式匹配算法实现串的模式匹配,匹配成功后规定输出模式串在目的串中的位置;2、参考程序给出了两种不同形式的next数组的计算方法,请完善程序从键盘初始化一目的串并设计匹配算法完整调试KMP算法,并与简朴模式匹配算法进行比较。四、程序流程图、算法及运营结果3-1#include<stdio.h>#include<string.h>#defineMAXSIZE100intStrIndex_BF(chars[MAXSIZE],chart[MAXSIZE]){inti=1,j=1;while(i<=s[0]&&j<=t[0]){if(s[i]==t[j]){i++;j++;}else{i=i-j+2;j=1;}}if(j>t[0])return(i-t[0]);elsereturn-1;}intmain(){chars[MAXSIZE];chart[MAXSIZE];intanswer,i;printf("SString-->\n");gets(s);printf("TString-->\n");gets(t);printf("%d",StrIndex_BF(s,t));/*验证*/if((answer=StrIndex_BF(s,t))>=0){printf("\n");printf("%s\n",s);for(i=0;i<answer;i++)printf("");printf("%s",t);printf("\n\nPatternFoundatlocation:%d\n",answer);}elseprintf("\nPatternNOTFOUND.\n");getch();return0;}3-2#include<stdio.h>#include<string.h>#defineMAXSIZE100voidget_nextval(unsignedcharpat[],intnextval[]){intlength=strlen(pat);inti=1;intj=0;nextval[1]=0;while(i<length){if(j==0||pat[i-1]==pat[j-1]){++i;++j;if(pat[i-1]!=pat[j-1])nextval[i]=j;elsenextval[i]=nextval[j];}elsej=nextval[j];}}intIndex_KMP(unsignedchartext[],unsignedcharpat[],intnextval[]){inti=1;intj=1;intt_len=strlen(text);intp_len=strlen(pat);while(i<=t_len&&j<=p_len){if(j==0||text[i-1]==pat[j-1]){++i;++j;}elsej=nextval[j];}if(j>p_len)returni-1-p_len;elsereturn-1;}intmain(){unsignedchartext[MAXSIZE];unsignedcharpat[MAXSIZE];intnextval[MAXSIZE];intanswer,i;printf("\nBoyer-MooreStringSearchingProgram");printf("\n====================================");printf("\n\nTextString-->");gets(text);printf("\nPatternString-->");gets(pat);get_nextval(pat,nextval);if((answer=Index_KMP(text,pat,nextval))>=0){printf("\n");printf("%s\n",text);for(i=0;i<answer;i++)printf("");printf("%s",pat);printf("\n\nPatternFoundatlocation%d\n",answer);}elseprintf("\nPatternNOTFOUND.\n");getch();return0;}3-3#include"stdio.h"voidGetNext1(char*t,intnext[]){inti=1,j=0;next[1]=0;while(i<=9){if(j==0||t[i]==t[j]){++i;++j;next[i]=j;}elsej=next[j];}}voidGetNext2(char*t,intnext[]){inti=1,j=0;next[1]=0;while(i<=9){while(j>=1&&t[i]!=t[j])j=next[j];i++;j++;if(t[i]==t[j])next[i]=next[j];elsenext[i]=j;}}voidmain(){char*p="abcaababc";inti,str[10];GetNext1(p,str);printf("Putout:\n");for(i=1;i<10;i++)printf("%d",str[i]);GetNext2(p,str);printf("\n");for(i=1;i<10;i++)printf("%d",str[i]);printf("\n");getch();}实验四二叉树操作一、实验目的1.进一步掌握指针变量的含义。2.掌握二叉树的结构特性,以及各种存储结构的特点及使用范围。3.掌握用指针类型描述、访问和解决二叉树的运算。二、实验规定

1.认真阅读和掌握本实验的参考程序。2.按照对二叉树的操作需要,在创建好二叉树后再通过遍历算法验证创建结果。3.保存程序的运营结果,并结合程序进行分析。三、实验内容ﻫ以下参考程序是按完全二叉树思想将输入的字符串生成二叉树,并通过遍历来验证二叉树创建对的与否,但不能创建非完全二叉树,请认真研究该程序,然后模仿教材例6.4初始化方式创建二叉树:所有的空指针均用#表达,如教材图6-13相应的二叉树,建立时的初始序列为:AB#D##CE##F##。四、程序流程图、算法及运营结果4-1#include"stdio.h"#definemax30#defineNULL0typedefstructBNode{chardata;/*数据域*/structBNode*lchild,*rchild;/*指向左右子女*/}BinTree;voidpreorder(BinTree*t);/*声明先根遍历函数*/voidinorder(BinTree*t);/*声明中根遍历函数*/voidpostorder(BinTree*t);/*声明后根遍历函数*/intleafs(BinTree*b);/*声明求叶子数函数*/inttreedeep(BinTree*p);/*声明求树的深度函数*/BinTree*swap(BinTree*p);/*声明互换二叉树的所有结点的左右子树的函数*//*将字符串中的第i个字符开始的m个字符作为数据生成相应的二叉树*/BinTree*cre_tree(char*str,inti,intm){BinTree*p;if(i>=m)/*无效结点*/returnNULL;p=(BinTree*)malloc(sizeof(BinTree));/*生成新结点*/p->data=str[i];p->lchild=cre_tree(str,2*i+1,m);/*创建新结点的左子树*/p->rchild=cre_tree(str,2*i+2,m);/*创建新结点的右子树*/returnp;}voidmain(){inti,n;charstr[max];BinTree*root;/*根结点*/printf("请输入二叉树的结点数:");scanf("%d",&n);getchar();/*输入数字*/printf("请输入长度为%d的字符串:",n);for(i=0;i<n;i++)scanf("%c",&str[i]);printf("\n");root=cre_tree(str,0,n);printf("二叉树已成功创建!结点序列为:");for(i=0;i<n;i++)printf("%c",str[i]);printf("\n");/*先根遍历*/printf("\n先根遍历结果:");preorder(root);printf("\n");/*中根遍历*/printf("\n中根遍历结果:");inorder(root);printf("\n");/*后根遍历*/printf("\n后根遍历结果:");postorder(root);printf("\n");printf("\n叶子数为:%d\n",leafs(root));printf("\n树的深度为:%d\n",treedeep(root));printf("\n互换左右子树后先序遍历序列为:");preorder(swap(root));printf("\n\n");}voidpreorder(BinTree*t){if(t!=NULL){printf("%c",t->data);if(t->lchild){printf("->");preorder(t->lchild);}if(t->rchild){printf("->");preorder(t->rchild);}}}voidinorder(BinTree*t){if(t!=NULL){inorder(t->lchild);printf("%c",t->data);inorder(t->rchild);}}voidpostorder(BinTree*t){if(t!=NULL){postorder(t->lchild);postorder(t->rchild);printf("%c",t->data);}}intleafs(BinTree*b)/*求叶子数*/{intnum1,num2;if(b==NULL)return(0);elseif(b->lchild==NULL&&b->rchild==NULL)return(1);else{num1=leafs(b->lchild);num2=leafs(b->rchild);return(num1+num2);}}inttreedeep(BinTree*p)/*求树的深度*/{intldeep,rdeep,deep;if(p==NULL)deep=0;else{ldeep=treedeep(p->lchild);rdeep=treedeep(p->rchild);deep=(ldeep>rdeep?ldeep:rdeep)+1;}returndeep;}BinTree*swap(BinTree*p)/*互换二叉树的所有结点的左右子树*/{BinTree*stack[max];intk=0;stack[k]=NULL;if(p!=NULL){stack[++k]=p->lchild;p->lchild=p->rchild;p->rchild=stack[k];p->lchild=swap(p->lchild);p->rchild=swap(p->rchild);}returnp;}实验五图的创建与遍历.一、实验目的1.掌握图的含义;2.掌握用邻接矩阵和邻接表的方法描述图的存储结构;3.理解并掌握深度优先遍历和广度优先遍历的存储结构。二、实验规定

1.认真阅读和掌握本实验的参考程序。2.按照对图的操作需要,在创建好图后再通过遍历算法验证创建结果。3.保存程序的运营结果,并结合程序进行分析。三、实验内容ﻫ以下参考程序是按邻接表的方法创建图,然后用深度优先遍历方法遍历图。请认真理解程序,然后实现图的广度优先遍历。四、程序流程图、算法及运营结果5-1#include"stdio.h"#definemaxsize1024/*假定线性表的最大长度为1024*/#definen100/*图的顶点最大个数*/typedefintdatatype;/*假定线性表元素的类型为整型*/typedefcharVEXTYPE;/*顶点的数据类型*/typedeffloatADJTYPE;/*权值类型*/typedefstruct{VEXTYPEvexs[n];/*顶点信息数组*/ADJTYPEarcs[n][n];/*边权数组*/intnum;/*顶点的实际个数*/}GRAPH;/*1.置空图*/voidGraphInit(GRAPH*L){L->num=0;}/*2.求结点数*/intGraphVexs(GRAPH*L){return(L->num);}/*3.创建图*/voidGraphCreate(GRAPH*L){inti,j;GraphInit(L);printf("请输入顶点数目:");scanf("%d",&L->num);printf("请输入各顶点的信息(单个符号):");for(i=0;i<L->num;i++){fflush(stdin);scanf("%c",&L->vexs[i]);}printf("请输入边权矩阵的信息:");for(i=0;i<L->num;i++){for(j=0;j<L->num;j++){scanf("%f",&L->arcs[i][j]);}}printf("图已经创建完毕!");}/*4.图的输出*/voidGraphOut(GRAPHL){inti,j;printf("\n图的顶点数目为:%d",L.num);printf("\n图的各顶点的信息为:\n");for(i=0;i<L.num;i++)printf("%c",L.vexs[i]);printf("\n图的边权矩阵的信息为:\n");for(i=0;i<L.num;i++){for(j=0;j<L.num;j++){printf("%6.2f",L.arcs[i][j]);}printf("\n");}printf("图已经输出完毕!");}/*5.图的深度环游*/voidDFS(GRAPHg,intqidian,intmark[])/*从第qidian个点出发深度优先环游图g中能访问的各个顶点*/{intv1;mark[qidian]=1;printf("%c",g.vexs[qidian]);for(v1=0;v1<g.num;v1++){if(g.arcs[qidian][v1]!=0&&mark[v1]==0)DFS(g,v1,mark);}}/*6.图的深度环游*/voidGraphDFS(GRAPHg)/*深度优先环游图g中能访问的各个顶点*/{intqidian,v,v1,mark[maxsize];printf("\n深度环游:");printf("\n请输入起点的下标:");scanf("%d",&qidian);for(v=0;v<g.num;v++){mark[v]=0;}for(v=qidian;v<g.num+qidian;v++){v1=v%g.num;if(mark[v1]==0)DFS(g,v1,mark);}}/*队列元素的数据类型*/typedefintDATATYPE;typedefstruct{DATATYPEdata[maxsize];/*队中元素*/intfront,rear;/*队头元素下标、队尾元素后面位置的下标*/}SEQQUEUE;voidQueueInit(SEQQUEUE*sq)/*将顺序循环队列sq置空(初始化)*/{sq->front=0;sq->rear=0;}intQueueIsEmpty(SEQQUEUEsq)/*假如顺序循环队列sq为空,成功返回1,否则返回0*/{if(sq.rear==sq.front)return(1);elsereturn(0);}intQueueFront(SEQQUEUEsq,DATATYPE*e)/*将顺序循环队列sq的队头元素保存到e所指地址,成功返回1,失败返回0*/{if(QueueIsEmpty(sq)){printf("queueisempty!\n");return0;}else{*e=sq.data[(sq.front)];return1;}}intQueueIn(SEQQUEUE*sq,DATATYPEx)/*将元素x入队列sq的队尾,成功返回1,失败返回0*/{if(sq->front==(sq->rear+1)%maxsize){printf("queueisfull!\n");return0;}else{sq->data[sq->rear]=x;sq->rear=(sq->rear+1)%maxsize;return(1);}}intQueueOut(SEQQUEUE*sq)/*将队列sq队首元素出队列,成功返回1,失败返回0*/{if(QueueIsEmpty(*sq)){printf("queueisempty!\n");return0;}else{sq->front=(sq->front+1)%maxsize;return1;}}/*7.图的广度环游*/voidBFS(GRAPHg,intv,intmark[])/*从v出发广度优先环游图g中能访问的各个顶点*/{intv1,v2;SEQQUEUEq;QueueInit(&q);QueueIn(&q,v);mark[v]=1;printf("%c",g.vexs[v]);while(QueueIsEmpty(q)==0){QueueFront(q,&v1);QueueOut(&q);for(v2=0;v2<g.num;v2++){if(g.arcs[v1][v2]!=0&&mark[v2]==0){QueueIn(&q,v2);mark[v2]=1;printf("%c",g.vexs[v2]);}}}}/*8.图的广度环游*/voidGraphBFS(GRAPHg)/*深度优先环游图g中能访问的各个顶点*/{intqidian,v,v1,mark[maxsize];printf("\n广度环游:");printf("\n请输入起点的下标:");scanf("%d",&qidian);for(v=0;v<g.num;v++){mark[v]=0;}for(v=qidian;v<g.num+qidian;v++){v1=v%g.num;if(mark[v1]==0)BFS(g,v1,mark);}}voidmain(){GRAPHtu;GraphCreate(&tu);GraphOut(tu);GraphDFS(tu);GraphBFS(tu);}实验六查找的实现一、实验目的1.通过实验掌握查找的基本概念;2.掌握顺序查找算法与实现;3.掌握折半查找算法与实现。二、实验规定1.认真阅读和掌握本实验的参考程序。2.保存程序的运营结果,并结合程序进行分析。三、实验内容1、建立一个线性表,对表中数据元素存放的先后顺序没有任何规定。输入待查数据元素的关键字进行查找。为了简化算法,数据元素只含一个整型关键字字段,数据元素的其余数据部分忽略不考虑。建议采用前哨的作用,以提高查找效率。2、查找表的存储结构为有序表,输入待查数据元素的关键字运用折半查找方法进行查找。此程序中规定对整型量关键字数据的输入按从小到大排序输入。四、程序流程图、算法及运营结果算法:6-1#include"type.h"intseach_seq(SSTableA,ElemTypekey){inti,n;n=A.length;A.elem[n].key=key;for(i=0;A.elem[i].key!=key;++i)returni;}6-2#include"type.h"intBinsch(SSElementA[],intlow,inthigh,ElemTypeK){intmid;if(low<=high){intmid=(low+high)/2;if(K==A[mid].key)returnmid;/*查找成功,返回元素的下标*/elseif(K<A[mid].key)returnBinsch(A,low,mid-1,K);/*在左子表上继续查找*/elsereturnBinsch(A,mid+1,high,K);/*在右子表上继续查找*/}elsereturn0;/*查找失败,返回0*/}实验七各种排序方法的比较一、实验目的1.通过实验掌握排序的基本概念,对排序的稳定性及排序的时间复杂性有深刻的结识。2.掌握各种排序方法的基本思想和算法实现。3.可以灵活地选用某种排序方法解决问题。二、实验规定1.认真阅读和掌握本实验的参考程序。2.保存程序的运营结果,并结合程序进行分析。三、实验内容编写一个程序,对所给的数据(程序中给出或通过键盘初始化均可)进行排序,规定尽也许多的选择不同的排序算法,并显示排序前和排序后的结果。四、程序流程图、算法及运营结果算法:常用排序算法总结及C源程序ﻫ/*直接插入排序*/

voidInsertSort(int*out,int*op,intlength)ﻫ{ﻫinti,j;ﻫintdata;memcpy(out,op,length*sizeof(int));ﻫfor(i=1;i<length;i++)

{ﻫdata=out;ﻫfor(j=i-1;data<out[j]&&j>=0;j--)ﻫ{ﻫ

out[j+1]=out[j];ﻫ}ﻫout[j+1]=data;ﻫ}

}

/*折半插入排序*/

voidBInsertSort(int*out,int*op,intlength)ﻫ{ﻫintlow,mid,high;

inti,j,data;ﻫmemcpy(ou

温馨提示

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

评论

0/150

提交评论