




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)構(gòu)造實(shí)驗(yàn)報(bào)告(實(shí)驗(yàn))數(shù)據(jù)構(gòu)造實(shí)驗(yàn)報(bào)告(實(shí)驗(yàn))19/19數(shù)據(jù)構(gòu)造實(shí)驗(yàn)報(bào)告(實(shí)驗(yàn))優(yōu)選文檔深圳大學(xué)實(shí)驗(yàn)報(bào)告課程名稱:數(shù)據(jù)構(gòu)造實(shí)驗(yàn)與課程設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目名稱:實(shí)驗(yàn)一:序次表的應(yīng)用學(xué)院:計(jì)算機(jī)與軟件學(xué)院專業(yè):指導(dǎo)教師:蔡平報(bào)告人:文成學(xué)號:2011150259班級:5實(shí)驗(yàn)時間:2012-9-17實(shí)驗(yàn)報(bào)告提交時間:2012-9-24教務(wù)部制.優(yōu)選文檔一、實(shí)驗(yàn)?zāi)康呐c要求:目的:1.掌握線性表的基根源理2.掌握線性表地基本構(gòu)造3.掌握線性表地創(chuàng)辦、插入、刪除、查找的實(shí)現(xiàn)方法要求:1.熟悉C+語言編程2.熟練使用C+語言實(shí)現(xiàn)線性表地創(chuàng)辦、插入、刪除、查找的實(shí)現(xiàn)方法二、實(shí)驗(yàn)內(nèi)容:ProblemA:數(shù)據(jù)構(gòu)造實(shí)驗(yàn)1
2、序次表例程Description實(shí)現(xiàn)序次表的創(chuàng)辦、插入、刪除、查找Input第一行輸入序次表的實(shí)質(zhì)長度n第二行輸入n個數(shù)據(jù)第三行輸入要插入的新數(shù)據(jù)和插入地址第四行輸入要刪除的地址第五行輸入要查找的地址Output第一行輸出創(chuàng)辦后,序次表內(nèi)的全部數(shù)據(jù),數(shù)據(jù)之間用空格分開第二行輸出執(zhí)行插入操作后,序次表內(nèi)的全部數(shù)據(jù),數(shù)據(jù)之間用空格分開第三行輸出執(zhí)行刪除操作后,序次表內(nèi)的全部數(shù)據(jù),數(shù)據(jù)之間用空格分開第四行輸出指定地址的數(shù)據(jù)SampleInput63SampleOutput22.優(yōu)選文檔HINT第i個地址是指從首個元素開始數(shù)起的第i個地址,對應(yīng)數(shù)組內(nèi)下標(biāo)為i-1的地址ProblemB:數(shù)據(jù)構(gòu)造實(shí)驗(yàn)1序
3、次表的數(shù)據(jù)交換Description實(shí)現(xiàn)序次表內(nèi)的元素交換操作Input第一行輸入n表示序次表包含的n個數(shù)據(jù)第二行輸入n個數(shù)據(jù),數(shù)據(jù)是小于100的正整數(shù)第三行輸入兩個參數(shù),表示要交換的兩個地址第四行輸入兩個參數(shù),表示要交換的兩個地址Output第一行輸出創(chuàng)辦后,序次表內(nèi)的全部數(shù)據(jù),數(shù)據(jù)之間用空格分開第二行輸出執(zhí)行第一次交換操作后,序次表內(nèi)的全部數(shù)據(jù),數(shù)據(jù)之間用空格分開第三行輸出執(zhí)行第二次交換操作后,序次表內(nèi)的全部數(shù)據(jù),數(shù)據(jù)之間用空格分開注意加入交換地址的合法性檢查,若是發(fā)現(xiàn)地址不合法,輸出error。SampleInput5112233445541SampleOutput11223344551
4、144332255errorHINT本題執(zhí)行兩次交換操作,注意寫好輸入接口。.優(yōu)選文檔ProblemC:數(shù)據(jù)構(gòu)造實(shí)驗(yàn)1序次表的合并Description假定兩個序次表的數(shù)據(jù)已經(jīng)依照從小到大的序次排列,實(shí)現(xiàn)兩個序次表的合并Input第一行輸入n表示序次表A包含的n個數(shù)據(jù)第二行輸入n個數(shù)據(jù),數(shù)據(jù)是小于100的正整數(shù)第三行輸入m表示序次表B包含的n個數(shù)據(jù)第二行輸入m個數(shù)據(jù),數(shù)據(jù)是小于100的正整數(shù)Output輸出合并后的序次表內(nèi)的全部數(shù)據(jù),數(shù)據(jù)之間用空格分開SampleInput3113355422446688SampleOutput問題D:數(shù)據(jù)構(gòu)造實(shí)驗(yàn)1序次表的循環(huán)移位題目描述序次表的移位是循環(huán)移
5、位,比方序次表:1,2,3,4,5,6。若是左移1位,即本來的頭元素搬動到尾端,其他元素向左移1位,變成2,3,4,5,6,1。同理,若是右移1位,即本來的尾元素搬動到頭,其他元素向右移1位,變成6,1,2,3,4,5。以下是移位的多個例子:原數(shù)據(jù):1,2,3,4,5,6左移3位:4,5,6,1,2,3,與原數(shù)據(jù)比較右移4位:3,4,5,6,1,2,與原數(shù)據(jù)比較請編寫程序?qū)崿F(xiàn)序次表的循環(huán)移位操作.優(yōu)選文檔輸入第一行輸入n表示序次表包含的n個數(shù)據(jù)第二行輸入n個數(shù)據(jù),數(shù)據(jù)是小于100的正整數(shù)第三行輸入搬動方向和搬動的位數(shù),左移方向?yàn)?,右移方向?yàn)?第三行輸入搬動方向和搬動的位數(shù),左移方向?yàn)?,右移
6、方向?yàn)?輸出第一行輸出創(chuàng)辦后,序次表內(nèi)的全部數(shù)據(jù),數(shù)據(jù)之間用空格分開第二行輸出執(zhí)行移位操作后,序次表內(nèi)的全部數(shù)據(jù),數(shù)據(jù)之間用空格分開第三行輸出執(zhí)行移位操作后,序次表內(nèi)的全部數(shù)據(jù),數(shù)據(jù)之間用空格分開若是發(fā)現(xiàn)輸入的搬動方向或位數(shù)不合法,不執(zhí)行移位操作,輸出error樣例輸入5112233445524樣例輸出112233445533445511224455112233三、實(shí)驗(yàn)步驟與過程:思路:1.序次表類定義2.序次表的創(chuàng)辦、插入、刪除、查找等功能的實(shí)現(xiàn)3.序次表的測試運(yùn)行源代碼:#includeusingnamespacestd;classList.優(yōu)選文檔private:int*elem;/數(shù)組
7、元素intlistsize;/序次表最大長度intlength;/序次表當(dāng)前長度public:List(intsize);/構(gòu)造函數(shù)List();/析構(gòu)函數(shù)intListLength();/獲取序次表的實(shí)質(zhì)長度intListInsert(inti,inte);/插入一個元素intListDelete(inti);/刪除一個元素,返回刪除的元素intGetElem(inti);/獲取一個元素,返回元素值;List:List(intsize)/構(gòu)造函數(shù)listsize=size;length=0;elem=newintlistsize;List:List()/析構(gòu)函數(shù)deleteelem;/回收空
8、間intList:ListLength()/獲取序次表的實(shí)質(zhì)長度returnlength;intList:ListInsert(inti,inte)/插入一個元素if(length=listsize)return0;/序次表已滿if(ilength+1)return0;/i值不合法if(i=length+1)elemlength=e;elsefor(intj=length;ji-1;j-)elemj=elemj-1;/地址i后邊的元素全部后移一位elemi-1=e;.優(yōu)選文檔length+;return1;intList:ListDelete(inti)/刪除一個元素,返回刪除的元素if(le
9、ngth=0)return0;if(ilength)return0;inttemp=elemi-1;for(intj=i-1;jlength;j+)/地址i后邊的元素全部前移一位elemj=elemj+1;length-;returntemp;intList:GetElem(inti)/獲取一個元素,返回元素值if(ilength)return0;returnelemi-1;intmain()inti,len,temp;ListmyList(20);/創(chuàng)辦一個序次表,最大長度為20cinlen;for(i=1;itemp;myList.ListInsert(i,temp);for(i=1;im
10、yList.ListLength()+1;i+)/打印序次表coutmyList.GetElem(i);coutelemj;/輸入插入數(shù)以及插入的地址myList.ListInsert(j,elem);/執(zhí)行插入操作for(i=1;imyList.ListLength()+1;i+)/打印插入后的結(jié)果coutmyList.GetElem(i);coutj;/輸入刪除的地址myList.ListDelete(j);/執(zhí)行刪除操作for(i=1;imyList.ListLength()+1;i+)/打印插入后的結(jié)果coutmyList.GetElem(i);coutj;coutmyList.Get
11、Elem(j)endl;/輸出指定地址的數(shù)據(jù)return0;:#includeusingnamespacestd;classListprivate:int*elem;/數(shù)組元素intlistsize;/序次表最大長度intlength;/序次表當(dāng)前長度public:List(intsize);/構(gòu)造函數(shù)List();/析構(gòu)函數(shù)intListLength();/獲取序次表的實(shí)質(zhì)長度intListInsert(inti,inte);/插入一個元素intListDelete(inti);/刪除一個元素,返回刪除的元素intGetElem(inti);/獲取一個元素,返回元素值intswap(inta
12、,intb);/交換二個元素;List:List(intsize)/構(gòu)造函數(shù)listsize=size;length=0;elem=newintlistsize;List:List()/析構(gòu)函數(shù).優(yōu)選文檔deleteelem;intList:ListLength()/獲取序次表的實(shí)質(zhì)長度returnlength;intList:ListInsert(inti,inte)/插入一個元素if(length=listsize)return0;/序次表已滿if(ilength+1)return0;/i值不合法if(i=length+1)elemlength=e;elsefor(intj=length;
13、ji-1;j-)/地址i后邊的元素全部后移一位elemj=elemj-1;elemi-1=e;length+;return1;intList:ListDelete(inti)/刪除一個元素,返回刪除的元素if(length=0)return0;if(ilength)return0;inttemp=elemi-1;for(intj=i-1;jlength;j+)/地址i后邊的元素全部前移一位elemj=elemj+1;length-;returntemp;intList:GetElem(inti)/獲取一個元素,返回元素值if(ilength)return0;returnelemi-1;.優(yōu)選文
14、檔intList:swap(inta,intb)/交換二個元素if(alength|blength|a=b)coutlen;for(i=1;itemp;myList.ListInsert(i,temp);for(i=1;imyList.ListLength()+1;i+)/打印序次表coutmyList.GetElem(i);coutxy;if(myList.swap(x,y)/交換這二個元素for(i=1;imyList.ListLength()+1;i+)/打印交換元素后的序次表coutmyList.GetElem(i);coutxy;if(myList.swap(x,y)/交換這二個元素
15、for(i=1;imyList.ListLength()+1;i+)/打印交換元素后的序次表.優(yōu)選文檔coutmyList.GetElem(i);coutendl;return0;C:#includeusingnamespacestd;classListprivate:int*elem;intlistsize;/序次表最大長度intlength;/序次表當(dāng)前長度public:List(intsize);/構(gòu)造函數(shù)List();/析構(gòu)函數(shù)intListLength();/獲取序次表的實(shí)質(zhì)長度intListInsert(inti,inte);/插入一個元素intListDelete(inti);/
16、刪除一個元素,返回刪除的元素intGetElem(inti);/獲取一個元素,返回元素值friendintfunc(List&a,List&b);/實(shí)現(xiàn)兩個序次表的合并;List:List(intsize)/構(gòu)造函數(shù)listsize=size;length=0;elem=newintlistsize;List:List()/析構(gòu)函數(shù)deleteelem;/回收空間intList:ListLength()/獲取序次表的實(shí)質(zhì)長度returnlength;.優(yōu)選文檔intList:ListInsert(inti,inte)/插入一個元素if(length=listsize)return0;/序次表已
17、滿if(ilength+1)return0;/i值不合法if(i=length+1)elemlength=e;elsefor(intj=length;ji-1;j-)elemj=elemj-1;/地址i后邊的元素全部后移一位elemi-1=e;length+;return1;intList:ListDelete(inti)/刪除一個元素,返回刪除的元素if(length=0)return0;if(ilength)return0;inttemp=elemi-1;for(intj=i-1;jlength;j+)elemj=elemj+1;/地址i后邊的元素全部前移一位length-;returnt
18、emp;intList:GetElem(inti)/獲取一個元素,返回元素值if(ilength)return0;returnelemi-1;intfunc(List&A,List&B)/實(shí)現(xiàn)兩個序次表的合并inta;for(inti=0;iB.ListLength();i+)a=-1;.優(yōu)選文檔for(intj=0;jA.ListLength();j+)if(B.elemi=a;k-)/地址i后邊的元素全部前移一位A.elemk+1=A.elemk;A.elema=B.elemi;/將B.elemi插到地址i處A.length+;/序次表當(dāng)前長度+1return0;intmain()inti
19、,len,temp;ListmyList1(100);/創(chuàng)辦一個序次表1,最大長度為100ListmyList2(100);/創(chuàng)辦一個序次表2,最大長度為100cinlen;/輸入序次表1長度for(i=1;itemp;myList1.ListInsert(i,temp);cinlen;/輸入序次表2長度for(i=1;itemp;myList2.ListInsert(i,temp);.優(yōu)選文檔func(myList1,myList2);/將序次表1與序次表2合并for(i=1;imyList1.ListLength()+1;i+)/輸出合并后的結(jié)果coutmyList1.GetElem(i)
20、;coutendl;return0;D:#includeusingnamespacestd;classListprivate:int*elem;intlistsize;/序次表最大長度intlength;/序次表當(dāng)前長度public:List(intsize);/構(gòu)造函數(shù)List();/析構(gòu)函數(shù)intListLength();/獲取序次表的實(shí)質(zhì)長度intListInsert(inti,inte);/插入一個元素intListDelete(inti);/刪除一個元素,返回刪除的元素intGetElem(inti);/查找一個元素,返回元素值intMove(inta,intb);List:List
21、(intsize)/構(gòu)造函數(shù)listsize=size;length=0;elem=newintlistsize;List:List()/析構(gòu)函數(shù)deleteelem;/回收空間intList:ListLength()/獲取序次表的實(shí)質(zhì)長度.優(yōu)選文檔returnlength;intList:ListInsert(inti,inte)/插入一個元素if(length=listsize)return0;/序次表已滿if(ilength+1)return0;/i值不合法if(i=length+1)elemlength=e;elsefor(intj=length;ji-1;j-)elemj=elemj
22、-1;/地址i后邊的元素全部后移一位elemi-1=e;length+;return1;intList:ListDelete(inti)/刪除一個元素,返回刪除的元素if(length=0)return0;if(ilength)return0;inttemp=elemi-1;for(intj=i-1;jlength;j+)elemj=elemj+1;/地址i后邊的元素全部前移一位length-;returntemp;intList:GetElem(inti)/查找一個元素,返回元素值if(ilength)return0;returnelemi-1;intList:Move(inta,intb)inti,j;int*p=newint2*length;/先構(gòu)造一個2倍長度的空間for(i=0;ilength;i+).優(yōu)選文檔pi=elemi;for(j=0;jlength;j+,i+)pi=elemj;/實(shí)質(zhì)上p指向的是elem*2的數(shù)組if(a=0)/若a=0,則向左移for(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧裝備制造職業(yè)技術(shù)學(xué)院《基礎(chǔ)和聲(一)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東省濟(jì)寧兗州區(qū)七校聯(lián)考2024-2025學(xué)年初三模擬訓(xùn)練(三)數(shù)學(xué)試題含解析
- 江蘇省無錫錫東片2025屆初三語文試題中考模擬試題含解析
- 五邑大學(xué)《開放性實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 蘆溪縣2025年數(shù)學(xué)三下期末統(tǒng)考模擬試題含解析
- 遼寧稅務(wù)高等專科學(xué)校《機(jī)電工程專業(yè)英語》2023-2024學(xué)年第一學(xué)期期末試卷
- 嘉興職業(yè)技術(shù)學(xué)院《臨床流行病學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 擔(dān)保協(xié)議書的范例二零二五年
- 二零二五場地轉(zhuǎn)租協(xié)議書
- 知識產(chǎn)權(quán)委托代理協(xié)議書二零二五年
- 愛護(hù)牙齒-兒童保健課件
- 電廠水化驗(yàn)培訓(xùn)
- 社區(qū)衛(wèi)生服務(wù)中心的運(yùn)營與管理策略
- DB4401∕T 10.10-2019 反恐怖防范管理 第10部分:園林公園
- 機(jī)動車檢測站可行性研究報(bào)告
- 《醫(yī)學(xué)影像檢查技術(shù)學(xué)》課件-腹部X線攝影
- GB/T 30889-2024凍蝦
- 地產(chǎn)營銷培訓(xùn)課件
- 【Flywheel】2024年電商消費(fèi)趨勢年度報(bào)告
- 石墨勻質(zhì)板施工方案
- 國核鈾業(yè)發(fā)展有限責(zé)任公司招聘筆試沖刺題2025
評論
0/150
提交評論