版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
暨南大学本科实验报告专用纸课程名称数据结构实验成绩评定实验工程名称实验十指导教师孙世良实验工程编号实验10实验工程类型实验地点实验楼三楼机房学生姓名林炜哲学号2013053005学院电气信息学院系专业软件工程实验时间年月日午~月日午温度℃湿度实验目的实验内容和要求将前面九个实验合并为一个实验。主要仪器设备实验环境:MicrosoftVisualStudio2012源程序#include<stdio.h>#include<stdlib.h>#include<string.h>#include"first.h"intmain(){ printf("实验一:\n"); //矩阵相乘 inta,b,c,d,i,j,k; int**Matrix_1,**Matrix_2,**Matrix_3; printf("输入两个矩阵的行宽和列宽:"); scanf("%d%d%d%d",&a,&b,&c,&d); Matrix_1=(int**)malloc(a*sizeof(int*)); Matrix_2=(int**)malloc(c*sizeof(int*)); Matrix_3=(int**)malloc(a*sizeof(int*)); printf("pleaseenterthefirstone\n"); for(i=0;i<a;i++) { *(Matrix_1+i)=(int*)malloc(b*sizeof(int)); for(j=0;j<b;j++) { scanf("%d",(*(Matrix_1+i))+j); } } printf("pleaseenterthesecondone\n"); for(i=0;i<c;i++) { *(Matrix_2+i)=(int*)malloc(c*sizeof(int)); for(j=0;j<d;j++) { scanf("%d",(*(Matrix_2+i))+j); } } for(i=0;i<d;i++) { *(Matrix_3+i)=(int*)malloc(d*sizeof(int)); for(j=0;j<d;j++) { *(*(Matrix_3+i)+j)=0; for(k=0;k<b;k++) *(*(Matrix_3+i)+j)+=Matrix_1[i][k]*Matrix_2[k][j]; } } printf("theendof:\n"); for(i=0;i<a;i++) { for(j=0;j<d;j++) { printf("%d",*(*(Matrix_3+i)+j)); } printf("\n"); } printf("实验二:\n"); //实验二 LinkListLa,Lb,Lc,I; charX; printf("创立字符链表La〔10个元素〕:"); CreateList(La,10); fflush(stdin); printf("创立字符链表Lb〔20个元素〕:"); CreateList(Lb,20); printf("请输入La中想查找的字符:"); fflush(stdin); scanf("%c",&X); printf("该字符位序为%d\n",Locate(La,X)); printf("La的长度为:%d\n",Length(La)); MergeList(La,Lb,Lc,10,20); printf("将La与Lb合并并输出:"); I=Lc; while(I=I->next){ printf("%c",I->data); } printf("\n"); printf("实验三:\n"); //实验三 charQueue[20];//下标转换 charrs[40]; scanf("%s",Queue); Switch(rs,Queue); puts(rs); return0; charx;//判断表达式 i=0; while((x=getchar())!=EOF){ if(x=='(') i++; else if(x==')') i--; if(i<0){ printf("error\n"); return0; } } printf("right\n"); chars[20];//从串s中删除所有和串t相同的字串 scanf("%s",s); chart[20]; scanf("%s",t); for(inti=0;i<strlen(s);i++){ if(s[i]==t[0]){ intk=0,j=i; for(;k<strlen(t);k++,j++) if(s[j]==t[k]) continue; else break; if(k==strlen(t)){ s[i]='\0'; char*str=s+i+k; strcat(s,str); i--; } } } printf("%s",s); charstr1[100],str2[100];//字符串比拟 scanf("%s",str1); scanf("%s",str2); printf("%d\n",StrCompare(str1,str2)); printf("实验四:\n"); //实验四 SqListA;//算法2.4 InitList_Sq(A); printf("输入一个线性表:"); intelem; while(scanf("%d",&elem)!=EOF) push(A,elem); intB,C; printf("删除第i个元素:"); scanf("%d",&B); ListDelete_Sq(A,B,C); printf("该元素为%d\n",C); printf("输出该线性表:"); for(i=0;i<A.length;i++) printf("%d",*(A.elem+i)); putchar('\n'); SqListLA,LB,LC; InitList_Sq(LA); InitList_Sq(LB); InitList_Sq(LC); printf("输入一个线性表La:");//算法2.7 while(scanf("%d",&elem)!=EOF) push(LA,elem); printf("输入一个线性表Lb:"); while(scanf("%d",&elem)!=EOF) push(LB,elem); printf("将La与Lb合并为Lc并输出:"); MergeList_Sq(LA,LB,LC); for(i=0;i<LC.length;i++) printf("%d",*(LC.elem+i)); putchar('\n'); printf("实验五:\n"); //实验五 intl,x_5;//矩阵的三元组压缩 TSMatrixArray; k=0; printf("请输入行数和列数:"); scanf("%d%d",&Array.mu,&Array.nu); for(i=1;i<=Array.mu;i++){ for(j=1;j<=Array.nu;j++){ scanf("%d",&x_5); if(x_5!=0){ Array.data[++k].e=x_5; Array.data[k].i=i; Array.data[k].j=j; } } } Array.tu=k; for(k=0;k<=Array.tu;k++){ if(k==0) printf("i\tj\tv\n"); else printf("%d\t%d\t%d\n",Array.data[k].i,Array.data[k].j,Array.data[k].e); } TSMatrixa_5,b_5;//三元组矩阵的转置 printf("请输入三元矩阵的行数和列数:"); scanf("%d%d",&a_5.mu,&a_5.nu); printf("请输入一个三元矩阵:〔行标,列标,数值〕"); k=1; while(scanf("%d%d%d",&a_5.data[k].i,&a_5.data[k].j,&a_5.data[k].e)!=EOF) k++; a_5.tu=k-1; TransposeSMatrix(a_5,b_5); for(k=0;k<=b_5.tu;k++){ if(k==0) printf("i\tj\tv\n"); else printf("%d\t%d\t%d\n",b_5.data[k].i,b_5.data[k].j,b_5.data[k].e); } printf("实验六:\n"); //实验六 intB_6[100]; int*p=B_6; printf("请输入数组:"); while(scanf("%d",p)!=EOF)p++; printf("请输入下标:"); scanf("%d%d",&i,&j); printf("该元素为:%d\n",B_6[Switch_0(i,j)]); printf("实验七:\n"); //实验七 bitreey_7; printf("以先序遍历的方式输入二叉树:"); create(y_7); printf("输出表达式:"); middle_order(y_7); putchar('\n'); printf("实验八:\n"); //实验八 bitreex_8; printf("以先序遍历的方法创立二叉树:"); create(x_8); printf("利用栈对二叉树进行先序遍历并输出:"); PreOrderUnrec(x_8); putchar('\n'); printf("利用栈对二叉树进行后序遍历:"); InOrderUnrec(x_8); putchar('\n'); bitree_0z;//6.39 z=(bitnode_0*)malloc(sizeof(bitnode_0)); z->parent=NULL; printf("按照先序遍历存入二叉树:"); create_0(z); printf("后序遍历访问二叉树:"); postorder(z); putchar('\n'); printf("实验九:\n"); //实验九 ALGraphG; Creat(G); BFSTraverse(G); putchar('\n'); DFSTraverse(G); putchar('\n'); return0;}#include<stdio.h>#include<stdlib.h>#include<string.h>#include"first.h"intmain(){ printf("实验一:\n"); //矩阵相乘 inta,b,c,d,i,j,k; int**Matrix_1,**Matrix_2,**Matrix_3; printf("输入两个矩阵的行宽和列宽:"); scanf("%d%d%d%d",&a,&b,&c,&d); Matrix_1=(int**)malloc(a*sizeof(int*)); Matrix_2=(int**)malloc(c*sizeof(int*)); Matrix_3=(int**)malloc(a*sizeof(int*)); printf("pleaseenterthefirstone\n"); for(i=0;i<a;i++) { *(Matrix_1+i)=(int*)malloc(b*sizeof(int)); for(j=0;j<b;j++) { scanf("%d",(*(Matrix_1+i))+j); } } printf("pleaseenterthesecondone\n"); for(i=0;i<c;i++) { *(Matrix_2+i)=(int*)malloc(c*sizeof(int)); for(j=0;j<d;j++) { scanf("%d",(*(Matrix_2+i))+j); } } for(i=0;i<d;i++) { *(Matrix_3+i)=(int*)malloc(d*sizeof(int)); for(j=0;j<d;j++) { *(*(Matrix_3+i)+j)=0; for(k=0;k<b;k++) *(*(Matrix_3+i)+j)+=Matrix_1[i][k]*Matrix_2[k][j]; } } printf("theendof:\n"); for(i=0;i<a;i++) { for(j=0;j<d;j++) { printf("%d",*(*(Matrix_3+i)+j)); } printf("\n"); } printf("实验二:\n"); //实验二 LinkListLa,Lb,Lc,I; charX; printf("创立字符链表La〔10个元素〕:"); CreateList(La,10); fflush(stdin); printf("创立字符链表Lb〔20个元素〕:"); CreateList(Lb,20); printf("请输入La中想查找的字符:"); fflush(stdin); scanf("%c",&X); printf("该字符位序为%d\n",Locate(La,X)); printf("La的长度为:%d\n",Length(La)); MergeList(La,Lb,Lc,10,20); printf("将La与Lb合并并输出:"); I=Lc; while(I=I->next){ printf("%c",I->data); } printf("\n"); printf("实验三:\n"); //实验三 charQueue[20];//下标转换 charrs[40]; scanf("%s",Queue); Switch(rs,Queue); puts(rs); return0; charx;//判断表达式 i=0; while((x=getchar())!=EOF){ if(x=='(') i++; else if(x==')') i--; if(i<0){ printf("error\n"); return0; } } printf("right\n"); chars[20];//从串s中删除所有和串t相同的字串 scanf("%s",s); chart[20]; scanf("%s",t); for(inti=0;i<strlen(s);i++){ if(s[i]==t[0]){ intk=0,j=i; for(;k<strlen(t);k++,j++) if(s[j]==t[k]) continue; else break; if(k==strlen(t)){ s[i]='\0'; char*str=s+i+k; strcat(s,str); i--; } } } printf("%s",s); charstr1[100],str2[100];//字符串比拟 scanf("%s",str1); scanf("%s",str2); printf("%d\n",StrCompare(str1,str2)); printf("实验四:\n"); //实验四 SqListA;//算法2.4 InitList_Sq(A); printf("输入一个线性表:"); intelem; while(scanf("%d",&elem)!=EOF) push(A,elem); intB,C; printf("删除第i个元素:"); scanf("%d",&B); ListDelete_Sq(A,B,C); printf("该元素为%d\n",C); printf("输出该线性表:"); for(i=0;i<A.length;i++) printf("%d",*(A.elem+i)); putchar('\n'); SqListLA,LB,LC; InitList_Sq(LA); InitList_Sq(LB); InitList_Sq(LC); printf("输入一个线性表La:");//算法2.7 while(scanf("%d",&elem)!=EOF) push(LA,elem); printf("输入一个线性表Lb:"); while(scanf("%d",&elem)!=EOF) push(LB,elem); printf("将La与Lb合并为Lc并输出:"); MergeList_Sq(LA,LB,LC); for(i=0;i<LC.length;i++) printf("%d",*(LC.elem+i)); putchar('\n'); printf("实验五:\n"); //实验五 intl,x_5;//矩阵的三元组压缩 TSMatrixArray; k=0; printf("请输入行数和列数:"); scanf("%d%d",&Array.mu,&Array.nu); for(i=1;i<=Array.mu;i++){ for(j=1;j<=Array.nu;j++){ scanf("%d",&x_5); if(x_5!=0){ Array.data[++k].e=x_5; Array.data[k].i=i; Array.data[k].j=j; } } } Array.tu=k; for(k=0;k<=Array.tu;k++){ if(k==0) printf("i\tj\tv\n"); else printf("%d\t%d\t%d\n",Array.data[k].i,Array.data[k].j,Array.data[k].e); } TSMatrixa_5,b_5;//三元组矩阵的转置 printf("请输入三元矩阵的行数和列数:"); scanf("%d%d",&a_5.mu,&a_5.nu); printf("请输入一个三元矩阵:〔行标,列标,数值〕"); k=1; while(scanf("%d%d%d",&a_5.data[k].i,&a_5.data[k].j,&a_5.data[k].e)!=EOF) k++; a_5.tu=k-1; TransposeSMatrix(a_5,b_5); for(k=0;k<=b_5.tu;k++){ if(k==0) printf("i\tj\tv\n"); else printf("%d\t%d\t%d\n",b_5.data[k].i,b_5.data[k].j,b_5.data[k].e); } printf("实验六:\n"); //实验六 int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位秘书处工作制度
- 卫生站门诊工作制度
- 卫生院理疗工作制度
- 印刷厂保密工作制度
- 厨柜设计师工作制度
- 县委办公室工作制度
- 县残联扶贫工作制度
- 双拥模范县工作制度
- 发型师店内工作制度
- 发热抢救室工作制度
- 2026部编版八年级语文下册《安塞腰鼓》教案
- 初中道德与法治八年级下册第三单元第六课我国国家机构整体教学设计
- 2025年11月基金从业资格《私募股权投资基金基础知识》试题及答案
- 2026年及未来5年市场数据中国微晶石行业市场深度分析及投资潜力预测报告
- 拆除工程安全监理实施细则
- 2026付款确认通知书模板
- 商混绩效考核制度
- 2026年嘉兴南湖学院单招综合素质考试题库及答案详解(名师系列)
- 浙江1月考社会现象类倡议书写作(提出问题-分析问题-解决问题)课件-高三英语二轮复习专项
- 幼儿园老师音乐培训课件
- 清水混凝土施工质量控制措施方案
评论
0/150
提交评论