数据结构与算法实验指导书.docVIP

  • 3
  • 0
  • 约1.4万字
  • 约 57页
  • 2023-08-13 发布于山东
  • 举报
数据构造与算法实验指导书 数据构造与算法实验指导书 PAGE/NUMPAGES 数据构造与算法实验指导书 《数据构造与算法》 实验报告 綦娜娜编 参照资料 哈尔滨理工大学荣成学院 参照资料 实验一次序表的实现和应用 一、实验目的 1、掌握次序表的定义; 2、掌握次序表的基本操作,如查找、插入、删除及排序等。 二、实验内容 1、编写函数,实此刻次序表中查找值为x的元素的地点的简单次序查找算法,编写主 函数考证此算法,并剖析算法的时间复杂度 2、编写函数,实此刻次序表中删除第i个地点上的元素,编写主函数考证此算法,并 剖析算法的时间复杂度 3、编写函数,实此刻次序表中第i个地点上插入值为x的元素,编写主函数考证此算 法,并剖析算法的时间复杂度 4、编写函数,实此刻次序表中将全部偶数排在全部奇数前面,编写主函数考证此算 法,并剖析算法的时间复杂度 三、实验提示 1、#includestdio.h #defineMAXSIZE20 typedefstruct{ intdata[MAXSIZE]; intlast; }list; /*编写函数,实此刻次序表中查找值为x的元素的地点的简单次序查找算法,编写主函 数考证此算法,并剖析算法的时间复杂度*/ 参照资料 intlocate(list*l,intx) { 代码inti; for(i=0;il-last;i++)if(l-data[i]==x)returni+1; return-1; } main( ) { listb; intx,i,p; b.last=10; for(i=0;ib.last;i++) b.data[i]=i+2; printf(请输入x的值:); scanf(%d,x); p=locate(b,x); if(p==-1) printf(no!); else 参照资料 printf(position=%d\n,p); } 时间复杂度T(n)=O(n); 2、#includestdio.h #defineMAXSIZE20 typedefstruct{ intdata[MAXSIZE]; intlast; }list; /*编写函数,实此刻次序表中删除第i个地点上的元素,编写主函数考证此算法,并分 析算法的时间复杂度*/ intdelete(list*l,inti) { intj,k,p;//定义一个用来保存被删原素; if(i=0il-last)//只接受有效输入 { 参照资料 for(j=0;jl-last;j++)//遍历数组 if(j==i-1)//般配 { p=l-data[j];//保存被删原素; for(k=j;kl-last;k++)//行进一位; { l-data[k]=l-data[k+1]; } break;//退出循环 } l-last=l-last-1; returnp;//关于本题来说能够输出p; } return0; } main( ) { listb; intx,i; b.last=10; for(i=0;ib.last;i++) b.data[i]=i+2; 参照资料 printf(请输入x的值:); scanf(%d,x); if(delete(b,x)!=0) { for(i=0;ib.last;i++) printf(%3d,b.data[i]); } else printf(Error!); } //时间复杂度T(n)=O(n); 3、#includestdio.h #defineMAXSIZE20 typedefstruct{ intdata[MAXSIZE]; intlast; }list; /*编写函数,实此刻次序表中第i个地点上插入值为x的元素,编写主函数考证此算 参照资料 法,并剖析算法的时间复杂度*/ intinsert(list*l,intx,inti) { intj,k; if(i=l-last+1i0) { if(i==l-last+1)//特别值last+1要插入到整个数组以后 { l-data[l-last]=x; } else { for(j=0;jl-last;j++) { if(j==i-1)//般配 { for(k=l-last;kj;k--)//将所选插入地点以后原素后移 { l-data[k]=l-data[k-1]; } l-data[j]=x;//把x赋值给所选地点 break; 参照资料 } } } l-last=l-last+1;//数值长度加一 return1; } return0;//无效地点 } main( ) { listb; intx,i; b.last=10; for(i=0;ib.last;i++) b.data[i]=i+2; printf(请输入x的值:); scanf

文档评论(0)

1亿VIP精品文档

相关文档