




免費(fèi)預(yù)覽已結(jié)束,剩余4頁(yè)可下載查看
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
中國(guó)礦業(yè)大學(xué)計(jì)算機(jī)學(xué)院實(shí)驗(yàn)報(bào)告課程名稱 數(shù)據(jù)結(jié)構(gòu) 實(shí)驗(yàn)名稱_線性表操作實(shí)驗(yàn)報(bào)告要求:1.實(shí)驗(yàn)?zāi)康?.實(shí)驗(yàn)內(nèi)容 3.實(shí)驗(yàn)步驟 4.運(yùn)行結(jié)果 5.流程圖 6.實(shí)驗(yàn)體會(huì) 一、實(shí)驗(yàn)?zāi)康? 熟悉并掌握線性表的邏輯結(jié)構(gòu)、物理結(jié)構(gòu)。2 熟悉并掌握順序表的存儲(chǔ)結(jié)構(gòu)、基本操作和具體的函數(shù)定義。3 熟悉VC+程序的基本結(jié)構(gòu),掌握程序中的用戶頭文件、實(shí)現(xiàn)文件和主文件之間的相互關(guān)系及各自的作用。4 熟悉VC+操作環(huán)境的使用以及多文件的輸入、編輯、調(diào)試和運(yùn)行的全過(guò)程。二、實(shí)驗(yàn)要求 1 實(shí)驗(yàn)之前認(rèn)真準(zhǔn)備,編寫(xiě)好源程序。2 實(shí)驗(yàn)中認(rèn)真調(diào)試程序,對(duì)運(yùn)行結(jié)果進(jìn)行分析,注意程序的正確性和健壯性的驗(yàn)證。3 不斷積累程序的調(diào)試方法。三、實(shí)驗(yàn)內(nèi)容 基本題:1 對(duì)元素類型為整型的順序存儲(chǔ)的線性表進(jìn)行插入、刪除和查找操作。源程序:#include#include#includeconst LIST_INIT_SIZE=10;const LISTINCREMENT=1;typedef structint *elem;int length;int listsize;SqList;void InitList_Sq(SqList&L) /構(gòu)造一個(gè)空的線性表LL.elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int);if(!L.elem)exit(0); /存儲(chǔ)分配失敗L.length=0; /空表長(zhǎng)度為0L.listsize=LIST_INIT_SIZE; /初始存儲(chǔ)容量coutOK!endl;void ListInsert_Sq(SqList&L,int i,int j) /在順序線性表L中第i個(gè)位置之前插入新的元素j, /i的合法值為1=i=ListInsert_Sq(L)+1if(iL.length+1)coutERROR!=L.listsize) /當(dāng)前存儲(chǔ)空間已滿,增加分配int *newbase=(int*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(int);if(!newbase)exit(0); /存儲(chǔ)分配失敗L.elem=newbase; /新基址L.listsize+=LISTINCREMENT; /增加存儲(chǔ)容量int *q=&(L.elemi-1);for(int*p=&(L.elemL.length-1);p=q;-p)*(p+1)=*p;*q=j;+L.length;coutOK!endl;/ListInsert_Sqvoid ListDelete_Sq(SqList&L,int i,int&j) /在順序線性表L中刪除第i個(gè)元素,并用j返回其值 /i的合法值為1=i=ListInsert_Sq(L)if(iL.length)coutERROR!endl; /i值不合法int *p=&(L.elemi-1); /p為被刪除元素的位置j=*p; /被刪除元素的值賦給jint *q=L.elem+L.length-1; /表尾元素的位置for(+p;p=q;+p)*(p-1)=*p;-L.listsize; /被刪除元素之后的元素左移coutOK!endl; /表長(zhǎng)減1/ListDelete_Sqbool compare(int m,int n) if(m=n)return true;elsereturn false;int LocateElem_Sq(SqList L,int j) /在順序線性表L中查找第1個(gè)值與j滿足compare()的元素的位序 /若找到,則返回其在L中的位序,否則返回0int i=1; /i的初值為第1個(gè)元素的位序int *p=L.elem; /p的初值為第1個(gè)元素的存儲(chǔ)位置while(i=L.length&!compare(*p,j)+i;p+;if(i=L.length)return i;elsereturn 0;/LocateElem_Sqvoid disp(SqList&L)int *p=L.elem;for(int i=0;iL.listsize;i+)cout*p ;p+;void main()SqList List;InitList_Sq(List);int *p=List.elem;int m,n,j,k,x,y;for(int i=0;ix;*p=x;p+;List.length+;cout插入請(qǐng)按1;刪除請(qǐng)按2;尋找請(qǐng)按3y;if(y=1)cout請(qǐng)輸入插入位置和元素的值:mn;ListInsert_Sq(List,m,n);disp(List);else if(y=2)cout請(qǐng)輸入要?jiǎng)h除第幾個(gè)元素:m;ListDelete_Sq(List,m,j);coutjendl;disp(List);elsecout請(qǐng)輸入所要查找的元素:m;coutLocateElem_Sq(List,m)endl;coutendl;運(yùn)行結(jié)果:加強(qiáng)、提高題:2、編寫(xiě)一個(gè)求解Josephus問(wèn)題的函數(shù)。用整數(shù)序列1, 2, 3, , n表示順序圍坐在圓桌周?chē)娜?。然后使用n = 9, s = 1, m = 5,以及n = 9, s = 1, m = 0,或者n = 9, s = 1, m = 10作為輸入數(shù)據(jù),檢查你的程序的正確性和健壯性。最后分析所完成算法的時(shí)間復(fù)雜度。定義JosephusCircle類,其中含完成初始化、報(bào)數(shù)出圈成員函數(shù)、輸出顯示等方法。(可以選做其中之一)加強(qiáng)題:1、采用數(shù)組作為求解過(guò)程中使用的數(shù)據(jù)結(jié)構(gòu)。提高題:2、采用循環(huán)鏈表作為求解過(guò)程中使用的數(shù)據(jù)結(jié)構(gòu)。運(yùn)行時(shí)允許指定任意n、s、m數(shù)值,直至輸入 n = 0 退出程序。源程序:(1)加強(qiáng):#include #include #include int a100;int josephus(int n,int s,int m)if(!(n*s*m)cout輸入錯(cuò)誤!endl;exit(0);int x=1,y=n;int i=s-1;int j;while(y)for(i=0;in;i+)if(ai+1)ai=x+;if(ai=m)ai=-1;couti+1出局!endl;x=1;y-;for(j=0;jn;j+)if(aj+1)aj=x+;if(aj=m)aj=-1; x=1;y-;if(!y)break;elsecoutj+1出局!endl;return (j+1);void main()int n,s,m,y=0;int x;dofor(int i=0;i100;i+)ai=0;cout請(qǐng)輸入?yún)⒓佑螒虻目側(cè)藬?shù):n;cout請(qǐng)輸入開(kāi)始人的位置與報(bào)數(shù)長(zhǎng)度:s;cinm;x=josephus(n,s,m);coutx勝出!endl;cout請(qǐng)選擇:endl;cout1.重新游戲。 2.退出程序。:y;while(y=1);getch();運(yùn)行結(jié)果:(2)提高:#includeusing namespace std;typedef struct LNodestruct LNode *next;int a;LNode,*LinkList;class JosephouCircle /定義一個(gè)類包括三個(gè)元素public:void SetValue();void PickOut();private:int n;int s;int m;void JosephouCircle:SetValue() /設(shè)置初值的大小cout請(qǐng)輸入?yún)⒓佑螒虻目側(cè)藬?shù):n;cout請(qǐng)輸入開(kāi)始人的位置:s;cout請(qǐng)輸入報(bào)數(shù)長(zhǎng)度:m;void JosephouCircle:PickOut()LinkList L;LNode *p,*q;int j,k;L=(LinkList)malloc(sizeof(LNode);L-next=NULL;LNode*r;r=L;for (int i=1;ia=i;p-next=NULL;r-next=p;r=p;p-next=L-next;p=L-next;j=1;while(p&jnext;+j;for(i=1;i=n;i+) for(j=1;jnext;q=p-next;p-next=q-next;p=q-next;k=q-a;cout輸出的結(jié)果為:kendl;free(q);int main(int argc,char* argv)JosephouCircle Jo1;Jo1.SetValue();Jo1.PickOut();return 0;運(yùn)行結(jié)果:四、實(shí)驗(yàn)體會(huì)與總結(jié)1、對(duì)于線性鏈表和順序表都屬于線性表問(wèn)題,但是線性鏈表比順序表要靈活,方便;2、線性表在做元素尋找的操作
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省遂寧市市城區(qū)2024年八上物理期末學(xué)業(yè)水平測(cè)試模擬試題含解析
- 2025至2030富含蛋白質(zhì)的營(yíng)養(yǎng)棒行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 增強(qiáng)校園管理制度與安全措施的法律保障
- 專業(yè)車(chē)輛運(yùn)輸安全質(zhì)量監(jiān)控協(xié)議
- 離婚協(xié)議中無(wú)形資產(chǎn)分割與權(quán)益保護(hù)合同
- 廚余垃圾處理與能源利用:行業(yè)發(fā)展趨勢(shì)與市場(chǎng)分析
- 2025至2030全球及中國(guó)廢紙管理行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025年《中華人民共和國(guó)藥品管理法》培訓(xùn)試卷與答案
- 2025至2030半自動(dòng)多頭灌裝機(jī)行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 2025至2030全球及中國(guó)貸款數(shù)字化行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 人教版五年級(jí)數(shù)學(xué)下冊(cè)測(cè)試題(全套)-五年下冊(cè)人教數(shù)學(xué)測(cè)試題
- 2024年律師委托合同范本(三篇)
- Unit3《Welcome to our school!》-2024-2025學(xué)年七年級(jí)英語(yǔ)上冊(cè)單元測(cè)試卷(譯林版2024新教材)
- 離婚自愿放棄所有財(cái)產(chǎn)的協(xié)議書(shū)2024年
- 幼兒園建設(shè)工程監(jiān)理實(shí)施方案(技術(shù)方案)
- 二手車(chē)輛購(gòu)買(mǎi)協(xié)議范本
- 2024年湖北省中考英語(yǔ)試題(附答案)
- JBT 5300-2024 工業(yè)用閥門(mén)材料 選用指南(正式版)
- 2024年4月自考02613單片機(jī)與接口技術(shù)試題
- 《大學(xué)法語(yǔ)簡(jiǎn)明教程》課件
- 急性肺栓塞課件
評(píng)論
0/150
提交評(píng)論