數(shù)據(jù)結(jié)構(gòu)實驗報告--1_第1頁
數(shù)據(jù)結(jié)構(gòu)實驗報告--1_第2頁
數(shù)據(jù)結(jié)構(gòu)實驗報告--1_第3頁
數(shù)據(jù)結(jié)構(gòu)實驗報告--1_第4頁
數(shù)據(jù)結(jié)構(gòu)實驗報告--1_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、長春市理工大學(xué)數(shù)據(jù)結(jié)構(gòu)和算法實驗報告實驗標(biāo)題:線性表順序存儲測試實驗時間:實驗場所:類:學(xué)號:名稱:一、實驗?zāi)康暮鸵?、掌握使用Visual C 6.0機器調(diào)試順序表的基本方法2、掌握順序表的基本操作、插入、刪除、查找和其他算法實現(xiàn)如果需要創(chuàng)建“基本要求”順序表,可以在鍵盤上將其存儲為元素讀取、順序存儲結(jié)構(gòu)。二、實驗意義和原則要在順序表中的第I個位置插入一個元素,必須先將順序表中第I個元素后的所有元素向后移動一個位置,清空該位置,然后將新元素插入到該位置。要刪除第I個元素,還必須將第I個元素后面的所有元素向前移動一個位置。三、算法分析(1)以下是函數(shù)運行結(jié)果狀態(tài)代碼#define TRUE

2、1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2(2)線性表的動態(tài)分配順序存儲結(jié)構(gòu)#define LIST_INIT_SIZE 100 /線性表存儲空間的初始分配#define LISTINCREMENT 10 /線性表存儲空間分配增量Typedef int Status/函數(shù)類型,其中值為函數(shù)結(jié)果狀態(tài)代碼Typedef int ElemType/數(shù)據(jù)元素整數(shù)Typedef structElemType * elem/存儲空間基本地址Int length/當(dāng)前長度Int lis

3、tsize/當(dāng)前分配的存儲容量 Sqlist(2)建設(shè)函數(shù)/函數(shù)名稱:InitList()/參數(shù):SqList L/初始條件:無/功能:規(guī)劃空定線表格狀態(tài)初始化列表(sqlist l)l . elem=(elem type *)malloc(list _ init _ size * sizeof(elem type);If(L.elem=NULL)結(jié)束(概述);Elsel . length=0;l . list size=list increment;Return OK(3)插入函數(shù)/函數(shù)名稱:ListInsert()/參數(shù):SqList L、int i、ElemType e/初始條件:定線表

4、格l牙齒已存在。1=i=ListLength(L) 1/功能:在定線表格中的第I個資料元素之前插入資料元素eStatus listinsert (sqlist l,int I,elemtype e)int * q=(l . elemI-1);ElemType *newbase,* p;If(i1|i(L.length 1)Return ERRORIf(L.length=L.listsize)new base=(elem type *)realloc(l . elem,l . list size list increment * size of(elem type);If(newbase=NUL

5、L)結(jié)束(概述);L.elem=newbasel . list size=list increment;for(p=(l . eleml . length-1);p=q;-p)*(p 1)=* p;* q=e;L.lengthReturn OK(4)刪除函數(shù)/函數(shù)名稱:ListDelete()/參數(shù):SqList L、int i、Elemtype e/初始條件:定線表格l牙齒已存在。1=i=ListLength(L)/功能:從定線表格l中移除第I個資料元素Status listdelet (sqlist l,int I,elemtype e)If(i1|(iL.length)Return ER

6、RORElemType *p、* q;p=(l . elemI-1);e=* p;q=l . elem l . length-1;龍(p;p=q;p)*(p-1)=* p;-l . length;Return OK四、源代碼#includeUsing namespace STD#define MAXSIZE 20Typedef int ElemTypeTypedef structElemType dataMAXSIZE;Int lengthInt listsize SqList/規(guī)劃空定線表格清單Bool InitList(SqList L)for(int I=0);IL.length)Ret

7、urn falseElseptr=l . datapos-1;Return ptr/位置位置的元素祖懷Void locate(SqList L,int location)If (l.length=位置)查詢“Cout”中的元素:“l(fā) . length 1”)Cout 插入位置錯誤!EndlReturn falseIf (pos2=L.length)/*元素將插入位置后的數(shù)據(jù)向后移動一步*/for(int I=l . length-1;I=pos 2-1;I -)l . dataI 1=l . dataI;l . datapos 2-1=Elem;/*新建元素*/If(L.datapos2-1=

8、Elem)/cout“元素添加成功”endlL.lengthReturn trueElse添加“Cout”元素失敗* * *“endl;Return false/PS的pos刪除第一個數(shù)據(jù)元素,使用PE返回值,減去PS長度1Bool list delete (sqlist l、intpos、elemtype * PE)If (pos 1 | pos L.length)Cout“刪除位置錯誤!”EndlReturn falseelse* PE=l . datapos-1;/*刪除位置后續(xù)元素前進(jìn)*/for(int I=pos);I L.lengthI)l . dataI-1=l . dataI;

9、l . length-;Return trueInt ListLength(SqList Sq)Return Sq.length/主函數(shù)Int main()Sqlist列表;Cout配置線性表列表endlInitlist(列表);/規(guī)劃定線表格確定是否為If(ListEmpty(list) /nullCout“路線表為空”endlElseCout“路線表不為空”;Int num/要添加的元素數(shù)Cout 輸入值數(shù):;Cinnum添加“Cout”輸入元素:“;ElemType Elemfor(int I=1);I num 1;I) /添加元素CinElemListInsert(list,I,Elem):If(list.length=list.listsize)Cout“添加元素成功!”Ele位置(列表,ele);Int resultCout 元素輸入要刪除的位置:;Cin preBoolre=listdelete (list,pre,result);Cout delete: result endlIf(re)刪除“Cout”成功EndlelseCout“刪除失??!”EndlIf(!ListEmpty(list)Cout list: endlfor(int I=0);I list length(list);I)cout list .

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論