版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
實驗報告實驗名稱線性表的插入語刪除班級學號姓名成績實驗概述:【實驗目的及要求】掌握線性表在順序分配下的插入與刪除運算;掌握線性表的鏈式存儲結(jié)構(gòu);掌握插入排序的方法;并掌握一種產(chǎn)生隨機數(shù)的方法?!緦嶒炘怼浚?)隨機整數(shù)的產(chǎn)生設m=216,初值y0=0,則遞推公式y(tǒng)i=mod(2053yi-1+13849,m)產(chǎn)生0至65535之間的隨機整數(shù)。如要產(chǎn)生0至999之間的隨機整數(shù),只需做運算xi=INT(1000yi/m)。(2)線性表的插入與刪除1.插入輸入:數(shù)組L(1:m),有序線性表L(1:n),需插入的新元素b。其中n<m。輸出:插入b后的有序線性表L(1:n)。2.刪除輸入:線性表L(1:n),n為線性表的長度,刪除的元素b(一定在線性表中)。輸出:刪除b后的線性表L(1:n)。(3)線性鏈表的插入排序輸入:1000個隨機整數(shù)。輸出:頭指針為H的有序鏈表?!緦嶒灜h(huán)境】(使用的軟硬件)硬件:PC軟件:VC++6.0實驗內(nèi)容:【實驗方案設計】產(chǎn)生1000個0至999間的隨機整數(shù),并以產(chǎn)生的次序存入一個數(shù)據(jù)文件中。編制一個程序,依次實現(xiàn)以下功能:定義一個有序(非遞減)線性表,其最大容量為1000,初始時為空。從由1產(chǎn)生的數(shù)據(jù)文件中依次取前N個隨機整數(shù),陸續(xù)插入到此線性表中,并要求在每次插入后保持線性表的有序性。最后將此有序線性表打印輸出。在由(2)產(chǎn)生的線性表中,依在1中產(chǎn)生的次序逐個將元素刪除,直至表空為止。以N=100及N=400分別運行2的程序,并比較它們的運行時間。編寫一個程序,用插入排序依次將1中產(chǎn)生的1000個隨機整數(shù)鏈接成有序鏈表(不改變原隨機數(shù)在存儲空間中的順序)?!緦嶒炦^程】(實驗步驟、記錄、數(shù)據(jù)、分析)(一)實驗步驟事先編制好實驗內(nèi)容中1、2、4的程序(可參考本實驗中的方法說明),并調(diào)試通過。運行1的程序,生成1000個0至999之間的隨機整數(shù)的數(shù)據(jù)文件,并打印輸出此數(shù)據(jù)文件。以N=100運行2的程序,并記下運行時間。以N=400運行2的程序,并記下運行時間。運行4的程序。整理程序清單和運行結(jié)果,寫出實驗報告。(二)程序清單【實驗一】#include<stdio.h>#include<stdlib.h>#include<math.h>voidmain(){ longintm,a=0;intb; FILE*fp; intc[1000]; fp=fopen("E:\\file.txt","w"); m=pow(2,16);for(b=0;b<1000;b++){a=(2053*a+13849)%m;c[b]=(1000*a)/m;fprintf(fp,"%5d",c[b]);}for(b=0;b<1000;b++){printf("%5d",c[b]); if((b+1)%10==0) printf("\n");}fclose(fp);}【實驗二】#include<stdio.h>#include<stdlib.h>voidmain(){inta[1000]={0};intb[1000]={0};inti,j,n,m;FILE*fp;fp=fopen("E:\\file.txt","r");rewind(fp);printf("\nPleaseinputtheamountyouwanttoreadfromthefile:");scanf("%d",&n);for(i=0;i<n;i++){fscanf(fp,"%d",&b[i]);a[i]=b[i]; if(i==0)continue; while(a[i]>a[i-1]) { m=a[i]; a[i]=a[i-1]; a[i-1]=m; }}printf("\nThefinaldatais:\n");for(i=0;i<n;i++)printf("%3d\t",a[i]);fclose(fp);for(i=0;i<n;i++){ j=-1; while(a[++j]!=b[i]); for(;j<n;j++) a[j]=a[j+1]; printf("\n"); for(m=0;m<n;m++) printf("%d\t",a[m]);}}【實驗三】#include<stdio.h>#include<stdlib.h>#include<time.h>voidmain(){ clock_tstart,finish;doubleduration;inta[1000]={0};intb[1000]={0};inti,j,n,m; FILE*fp;start=clock(); fp=fopen("E:\\file.txt","r"); rewind(fp);printf("\nPleaseinputtheamountyouwanttoreadfromthefile:");scanf("%d",&n);for(i=0;i<n;i++){fscanf(fp,"%d",&b[i]); a[i]=b[i]; if(i==0)continue; while(a[i]>a[i-1]) { m=a[i]; a[i]=a[i-1]; a[i-1]=m; }}printf("\nThefinaldatais:\n");for(i=0;i<n;i++)printf("%3d\t",a[i]);fclose(fp);for(i=0;i<n;i++){ j=-1; while(a[++j]!=b[i]); for(;j<n;j++) a[j]=a[j+1]; printf("\n"); for(m=0;m<n;m++) printf("%d\t",a[m]);}finish=clock();duration=(double)(finish-start)/CLOCKS_PER_SEC;printf("%fms\n",duration);}【實驗四】#include<stdio.h>#include<stdlib.h>#definen1000main(){inta[1001][2];inti,j;FILE*fp; fp=fopen("E:\\file.txt","r");rewind(fp);for(i=0;i<n;i++) { fscanf(fp,"%d",&a[i][1]); a[i][2]=i;if(i==0)continue; for(j=0;j<i;j++) { if(a[j][1]>a[i][1]) { a[j][2]++; a[i][2]--;}} }printf("Theoriginaldata:\n");for(i=0;i<n;i++)printf("%d\t",a[i][1]);printf("\nThefinaldata:\n");for(i=0;i<n;i++) { for(j=0;a[j][2]!=i;j++); printf("%d\t",a[j][1]);}fclose(fp);}(三)運行結(jié)果【實驗一】【實驗二】【實驗三】N=200N=400【實驗四】【小結(jié)】通過此次實驗,我掌握了線性表在順序分配下的插入與刪除運算,還有鏈表的存儲結(jié)構(gòu)、插入排序的方法,也對VC++的使用更加熟悉,同時對C語言進行了簡單的復習與回顧,學習了產(chǎn)生隨機數(shù)、文件數(shù)據(jù)輸入輸出、計算時間間隔的方法。
雖然在實驗過程中遇到了許多困難,開始編程序時存在各種
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度吊裝服務與材料供應安全責任合同3篇
- 二零二五年冷鏈物流配送及冷鏈設備維修合同3篇
- 二零二五年度商業(yè)綜合體車位買賣及增值服務合同3篇
- 2024年精簡版中央空調(diào)采購協(xié)議樣本版B版
- 2025年度云計算數(shù)據(jù)中心建設合同6篇
- 二零二五年唐朝人物離婚協(xié)議書翻譯及公證服務合同3篇
- 2024版居間傭金合同協(xié)議書范本
- 現(xiàn)代橋梁工程課程設計
- 2025年度養(yǎng)老產(chǎn)業(yè)企業(yè)全部股權(quán)轉(zhuǎn)讓與養(yǎng)老服務升級合同3篇
- 硬件課程設計的意義
- 常用工具的正確使用
- 管材管件供貨計劃、運輸方案及保障措施及售后服務
- (2024年)腸梗阻完整版課件
- 國際視野開拓全球
- T-CARM 002-2023 康復醫(yī)院建設標準
- 工程機械租賃服務方案及保障措施范本
- 2024年不良資產(chǎn)處置相關(guān)項目投資計劃書
- 腸道支架植入術(shù)培訓課件
- 數(shù)字政府建設行業(yè)分析
- 人教版三年級上冊豎式計算練習400題及答案
- gmp生產(chǎn)工藝的驗證
評論
0/150
提交評論