數(shù)據(jù)結(jié)構(gòu)作業(yè)線性鏈表_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)作業(yè)線性鏈表_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)作業(yè)線性鏈表_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)作業(yè)線性鏈表_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)作業(yè)線性鏈表_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)學(xué)與計(jì)算科學(xué)學(xué)院實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)項(xiàng)目名稱 線性表的存儲(chǔ)結(jié)構(gòu)所屬課程名稱 數(shù)據(jù)結(jié)構(gòu)(C語言版)實(shí)驗(yàn)類型 驗(yàn)證實(shí)驗(yàn)實(shí)驗(yàn)日期 2011年10月27日班級(jí)信計(jì)1001班學(xué)號(hào)201053100127姓名徐超成 績(jī)一、實(shí)驗(yàn)概述:【實(shí)驗(yàn)?zāi)康摹?. 線性表的邏輯結(jié)構(gòu)特征:總存在第一個(gè)和最后一個(gè)元素, 除第一個(gè)元素以外,每 個(gè)元素總存在唯一一個(gè)直接前驅(qū)元素; 除最后一個(gè)元素以外,每個(gè)元素總存在唯一 一個(gè)直接后繼元素。2順序表的特點(diǎn):邏輯結(jié)構(gòu)上相鄰物理結(jié)構(gòu)上不相鄰;是一種隨機(jī)的存儲(chǔ)結(jié)構(gòu)。3.通過上機(jī)實(shí)驗(yàn)驗(yàn)證順序表的算法正確性,了解算法與程序的區(qū)別?!緦?shí)驗(yàn)原理】1順序表的存儲(chǔ)結(jié)構(gòu):由一組地址連續(xù)的存儲(chǔ)空間依次存放線性

2、表的元素。2. 用一種連續(xù)空間存儲(chǔ)和處理線性表的順序結(jié)構(gòu)?!緦?shí)驗(yàn)環(huán)境】VC+6.0 二、實(shí)驗(yàn)內(nèi)容:【實(shí)驗(yàn)方案】首先構(gòu)建一個(gè)空的順序表,然后構(gòu)建主函數(shù),并對(duì)其進(jìn)行插入,刪除元素等一些簡(jiǎn)單的線性表操作.【實(shí)驗(yàn)過程】(實(shí)驗(yàn)步驟、記錄、數(shù)據(jù)、分析) 在C+新建文件輸入窗口輸入:#in clude<stdio.h>#in clude<stdlib.h>#defi ne TRUE 1#defi ne FALSE0#defi ne OK1#defi ne ERROR 0#defi ne INFEASIBLE-1#defi ne OVERFLOW-2typedef int Status

3、;typedef int ElemType;#defi ne LIST_INIT_SIZE 100#defi ne LISTINCREMENT 10typedef structElemType *elem;Int len gth;Int listsize;Sqlist;Status In itlist_Sq(Sqlist &L)L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType);if(!L.elem) exit(OVERFLOW);L.le ngth=O;L.listsize=LIST_INIT_SIZE;return O

4、K;Status List In sert_Sq(Sqlist &L,i nt i,ElemType e)ElemType *n ewbase,*q,*p;if(i<1|i>L.le ngth+1)return ERROR;if(L.len gth>=L .li stsize)n ewbase=(ElemType* )realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType);if(!n ewbase)exit(OVERFLOW);L.elem=n ewbase;L.listsize+=LISTINCREMEN

5、T;q=&(L.elemi-1);for(p=&(L.elemL.le ngth-1);p>=q;-p)*(p+1)=*p;*q=e;+L .len gth;return OK;Status ListDelete_Sq(SqlistemTy &L,int i,Elpe &e)ElemType *q,*p;if(i<1)| (i>L.le ngth)return ERROR;p=&(L.elemi-1);e=*p;q=L.elem+L .len gth-1;for (+p;p<=q;+p) *(p-1)=*p;-L .len gth

6、;return OK;void mai n() Sqlist L;int i;In itlist_Sq(L);for(i=0;i<LIST_INIT_SIZE;i+) scan f("%d",&L.elemi);L.len gth+;for(i=0;i<Len gth;i+)prin tf("%d", L.elemi);prin tf("n");ElemType e;scan f("%d%d",&i,& e);List In sert_Sq(L,i,e);for(i=0;i<

7、;Len gth;i+)prin tf("%d",*(L.elem+i);prin tf("n"); scan f("%d",&i);ListDelete_Sq(L,i,e); for(i=0;i<Len gth;i+)prin tf("%d", L.elemi);prin tf("n");然后點(diǎn)擊調(diào)試:桌面 教學(xué)軟件專區(qū)a,cpp.cpp(17) : errorC2146: syntax error : missing '' before identifier &

8、#39;length'改正方法:將大寫I改成小寫i2. C:Documents and桌面教學(xué)軟件專區(qū) a,cpp.cpp(50) : error C2065:'SqlistemTy' : un declared ide ntifier 改正方法:將SqlistemTy改成Sqlist桌面 教學(xué)軟件專區(qū) a,cpp.cpp(50) : error C2061: syntax error : ide ntifier 'Elemtype' 改正方法:將 Elemtype改成ElemType此時(shí)顯示: a,cpp.exe - 0 error(s), 0 war

9、ning(s),調(diào)試完畢; 在運(yùn)行窗口輸入:1 2 3 4 5 en ter;2 12 en ter;4 en ter;最終得到實(shí)驗(yàn)結(jié)果?!緦?shí)驗(yàn)結(jié)論】(結(jié)果)【實(shí)驗(yàn)小結(jié)】(收獲體會(huì))通過本次實(shí)驗(yàn),我初步掌握了線性表的邏輯結(jié)構(gòu)特征, 順序表的特點(diǎn),了解了算法 與程序的區(qū)別,掌握了算法中常出現(xiàn)的一些錯(cuò)誤及其糾正方法,受益匪淺啊!、指導(dǎo)教師評(píng)語及成績(jī):評(píng)語評(píng)語等級(jí)優(yōu)良中及 格不及格1.實(shí)驗(yàn)報(bào)告按時(shí)完成,字跡清楚,文字?jǐn)⑹隽鲿?,邏輯性?qiáng)2.實(shí)驗(yàn)方案設(shè)計(jì)合理3.實(shí)驗(yàn)過程(實(shí)驗(yàn)步驟詳細(xì),記錄完整,數(shù)據(jù)合理,分析透徹)4實(shí)驗(yàn)結(jié)論正確.成績(jī):指導(dǎo)教師簽名:批閱日期:附錄1:源程序#in clude<st

10、dio.h>#in clude<stdlib.h>#defi ne TRUE 1#defi ne FALSE 0#defi ne OK 1#defi ne ERROR 0#defi ne INFEASIBLE -1#defi ne OVERFLOW -2typedef int Status;typedef int ElemType;#defi ne LIST_INIT_SIZE 5#defi ne LISTINCREMENT 2typedef structElemType *elem;int len gth;int listsize;Sqlist;Status In itli

11、st_Sq(Sqlist & L)L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType);if(!L.elem) exit(OVERFLOW);L.le ngth=O;L.listsize=LIST_INIT_SIZE;return OK;Status ListInsert_Sq(Sqlist &L,int i,ElemType e)ElemType *n ewbase,*q,*p;if(i<1|i>L.length+1) return ERROR;if(L.len gth>=L .li stsize

12、)n ewbase=(ElemType* )realloc(L.elem,(Listsize+LISTINCREMENT)*sizeof(ElemType); if(! newbase)exit(OVERFLOW);L.elem=n ewbase;L.listsize+=LISTINCREMENT;q=&(L.elemi-1);for(p=&(L.elemL.le ngth-1);p>=q;-p)*(p+1)=*p;*q=e;+L .len gth;return OK;Status ListDelete_Sq(Sqlist &L,int i,ElemType &a

13、mp;e)ElemType *q,*p;if(i<1)|(i>L.length) return ERROR;p=&(L.elemi-1);e=*p;q=L.elem+L .len gth-1;for (+p;p<=q;+p) *(p-1)=*p;-L .len gth;return OK;void mai n() Sqlist L;int i;In itlist_Sq(L);for(i=0;i<LIST_INIT_SIZE;i+) scan f("%d",&L.elemi);L.len gth+;for(i=0;i<L .len

14、 gth;i+)prin tf("%d", L.elemi);prin tf("n");ElemType e;scan f("%d%d",&i,& e);List In sert_Sq(L,i,e);for(i=0;i<L .len gth;i+)prin tf("%d",*(L.elem+i);prin tf("n");scan f("%d",&i);ListDelete_Sq(L,i,e);for(i=0;i<L .len gth;i+)prin tf("%d", L.elemi);prin tf("n");8附錄2:實(shí)驗(yàn)報(bào)告填寫說明1實(shí)驗(yàn)項(xiàng)目名稱: 要求與實(shí)驗(yàn)教學(xué)大綱一致。2 實(shí)驗(yàn)?zāi)康模耗康囊鞔_,要抓住重點(diǎn),符合實(shí)驗(yàn)教學(xué)大綱要求。3 實(shí)驗(yàn)原理:簡(jiǎn)要說明本實(shí)驗(yàn)項(xiàng)目所涉及的理論知識(shí)。4.實(shí)驗(yàn)環(huán)境:實(shí)驗(yàn)用的軟、硬件環(huán)境。5實(shí)驗(yàn)方案(思路、步驟和方法等):這是實(shí)驗(yàn)報(bào)告極其重要的內(nèi)容。概括整個(gè)實(shí)驗(yàn)過程。對(duì)于驗(yàn)證性實(shí)驗(yàn),要寫明依據(jù)何種原理、操作方法進(jìn)行實(shí)驗(yàn),要寫明需要經(jīng)過哪幾個(gè)步

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論