北航计算机软件基础实验报告计算机软件基础上机实验报告(一)XXXXXX班XXX100211891.实验目的掌握线性表在顺序分配下的插入与删除运算;掌握线性表的链式存储结构;掌握插入排序的方法;并掌握一种产生随机数的方法。2.实验内容1.产生1000个0至999间的随机整数,并以产生的次序存入一个数据文件中。2.编制一个程序,依次实现以下功能:(1)定义一个有序(非递减)线性表,其最大容量为1000,初始时为空。(2)从由1产生的数据文件中依次取前N个随机整数,陆续插入到此线性表中,并要求在每次插入后保持线性表的有序性。最后将此有序线性表打印输出。(3)在由(2)产生的线性表中,依在1中产生的次序逐个将元素删除,直至表空为止。3.以N=100及N=400分别运行2的程序,并比较它们的运行时间。4.编写一个程序,用插入排序依次将1中产生的1000个随机整数链接成有序链表(不改变原随机数在存储空间中的顺序)。3.源代码与运行结果#include#include#include/**1_1产生1000个0至999间的随机整数,并以产生的次序存入一个数据文件(1_1.txt)中。**/main(){FILE*fo=fopen("1_1.txt","w");北航计算机软件基础实验报告inti,j;srand((unsigned)time(0));for(i=0;i<=999;i++)fprintf(fo,"%d\n",rand()%1000);fclose(fo);printf("1000个随机数已输出至目录下1_1.txt文件\n");system("pause");}输出文件1_1.txt如下:(因输出文本长度缘故,此处只截了一幅图)#include#include#include/**1_2从数据文件(1_1.txt)中读取数据,进行插入排序,然后屏幕输出。再依序删除。1_3以N=100及N=400分别运行2的程序,并比较它们的运行时间。**/#defineN1000main(){inta[N]={0};inti,j,m,w,num=0;北航计算机软件基础实验报告FILE*fi=fopen("1_1.txt","r");clock_tstart,finish;doubleduration;//Part1:start=clock();m=0;fscanf(fi,"%d",&num);a[0]=num;w=m;for(j=1;j<=N-1;j++){w=m;fscanf(fi,"%d",&num);while((a[w]>num)&&(w>=0))w--;w++;for(i=m;i>=w;i--)a[i+1]=a[i];a[w]=num;m++;}finish=clock();duration=(double)(finish-start)/CLOCKS_PER_SEC;printf("执行%d个数据插入操作完成!用时:%f秒,得到线性表如下:\n",m+1,duration);for(i=0;i#include/**1_4编写一个程序,用插入排序依次将1_1.txt中的1000个随机整数链接成有序链表(不改变原随机数在存储空间中的顺序)**/#defineN1000main(){structdata{intnum;structdata*next;};structdata*n,*head,*temp;FILE*fi=fopen("1_1.txt","rt");inti,a=0;n=(structdata*)malloc(sizeof(structdata));n->next=NULL;fscanf(fi,"%d",&a);n->num=a;head=n;for(i=1;i<=N-1;i++){n=(structdata*)malloc(sizeof(structdata));n->next=NULL;fscanf(fi,"%d",&a);n->num=a;temp=head;if((n->num)<=(temp->num))//n为目前最小值{n->next=temp;head=n;}else{while(((temp->next)!=NULL)&&((n->num)>((temp->next)->num)))temp=temp->next;if(temp->next==NULL)temp->next=n;//n为目前最大值北航计算机软件基础实验报告else//n插入链表{n->next=temp->next;temp->next=n;}}}printf("插入排序完成\n");printf("数据最小元素:%d\n",head->num);printf("完整数据输出:\n");temp=head;while(temp->next!=NULL){printf("%d",temp->num);temp=temp->next;}fclose(fi);system("pause");}程序运行输出结果如下:(因输出文本长度缘故,此处只截了一幅图)4.实验总结通过本...