實(shí)驗(yàn)一-順序表的設(shè)計(jì)與實(shí)現(xiàn)(共4頁(yè))_第1頁(yè)
實(shí)驗(yàn)一-順序表的設(shè)計(jì)與實(shí)現(xiàn)(共4頁(yè))_第2頁(yè)
實(shí)驗(yàn)一-順序表的設(shè)計(jì)與實(shí)現(xiàn)(共4頁(yè))_第3頁(yè)
實(shí)驗(yàn)一-順序表的設(shè)計(jì)與實(shí)現(xiàn)(共4頁(yè))_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上實(shí)驗(yàn)一 順序表的設(shè)計(jì)與實(shí)現(xiàn)一實(shí)驗(yàn)?zāi)康?進(jìn)一步熟悉VC環(huán)境,會(huì)在其中編寫(xiě)調(diào)試運(yùn)行c+代碼,并理解多文件項(xiàng)目的組織,為以后的實(shí)驗(yàn)編程做準(zhǔn)備。2掌握在VC環(huán)境中進(jìn)行代碼的調(diào)試3掌握順序表的設(shè)計(jì)過(guò)程,并能通過(guò)一實(shí)例對(duì)設(shè)計(jì)的順序表進(jìn)行測(cè)試。 二、實(shí)驗(yàn)內(nèi)容1順序表的設(shè)計(jì)(Sqlist.h):設(shè)計(jì)頭文件sqlist.h,其內(nèi)容如下: 類(lèi)型設(shè)計(jì)基本操作的設(shè)計(jì)(包括初始化、求數(shù)據(jù)元素個(gè)數(shù)、插入、刪除、取數(shù)據(jù)元素等)(補(bǔ)充完整)#define LIST_INIT_SIZE 10 #define LIST_INCREMENT 2 /線(xiàn)性表的動(dòng)態(tài)分配順序存儲(chǔ)結(jié)構(gòu)struct SqList E

2、lemType *elem; int length; int listsize; ; /順序表的初始化void InitList(SqList &L) /動(dòng)態(tài)分配存儲(chǔ)空間,并將分配到的存儲(chǔ)空間的首地址保持在順序表的elem項(xiàng)中L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType); if(!L.elem) exit(OVERFLOW);/將順序表的長(zhǎng)度初始化為0L.length=0;/將順序表的容量初始化為分配的空間數(shù)L.listsize=LIST_INIT_SIZE;/在線(xiàn)性表的第i個(gè)位置上插入數(shù)據(jù)元素eStatus Lis

3、tInsert(SqList &L,int i,ElemType e) ElemType *newbase,*q,*p; /判斷插入的位置是否合理,不合理則返回錯(cuò)誤信息if(i<1|i>L.length+1) return ERROR;/判斷是否有足夠的空間插入元素,空間不夠則增補(bǔ)空間if(L.length=L.listsize) newbase=(ElemType*)realloc(L.elem,(L.listsize+LIST_INCREMENT)*sizeof(ElemType);if(!newbase) exit(OVERFLOW);L.elem=newbase;

4、L.listsize+=LIST_INCREMENT; /插入數(shù)據(jù)元素(先將第i個(gè)元素及其后所有元素后移一個(gè)位置) q=L.elem+i-1; for(p=L.elem+L.length-1;p>=q;-p) *(p+1)=*p;/將元素e插入到第i個(gè)位置*q=e; /線(xiàn)性表的長(zhǎng)度增加1+L.length; return OK;/刪除線(xiàn)性表中第i個(gè)數(shù)據(jù)元素Status ListDelete(SqList &L,int i,ElemType &e) ElemType *p,*q;/判斷刪除的元素是否存在,不存在則返回錯(cuò)誤信息 if(i<1|i>L.length)

5、 return ERROR;/將第i+1個(gè)元素及其后所有元素前移一個(gè)位置,實(shí)現(xiàn)元素的刪除p=L.elem+i-1; e=*p; q=L.elem+L.length-1; for(+p;p<=q;+p) *(p-1)=*p;/刪除元素后,線(xiàn)性表的長(zhǎng)度減1L.length-; /返回操作成功的提示信息return OK;/在順序表中找給定元素值e的元素是否存在。存在則返回其位序,不存在返回0int Locate(SqList L,ElemType e)/依次訪(fǎng)問(wèn)順序表中的數(shù)據(jù)元素,并和e做比較,若相等則放回其位序,否則返回0for(int i=0;i<L.length;i+)if(L.

6、elemi=e)return i+1;return 0;/遍歷線(xiàn)性表void ListTraverse(SqList L,void(*visit)(ElemType) ElemType *p=L.elem; int i; for(i=1;i<=L.length;i+) visit(*p+); cout<<endl;2測(cè)試:設(shè)計(jì)測(cè)試文件test.cpp,驗(yàn)證所設(shè)計(jì)的順序表的正確性。其內(nèi)容如下:設(shè)計(jì)一個(gè)函數(shù)求解兩個(gè)集合的并集。設(shè)計(jì)一個(gè)主函數(shù)。#include <iostream.h>typedef int ElemType; #include "SqList

7、.h"void print(ElemType c) cout<<c<<" "Status equal(ElemType a,ElemType b)if(a=b)return TRUE;else return FALSE;void unionlist(SqList LA, SqList LB,SqList &LC)for(int i=0;i<LA.length;i+)LC.elemi=LA.elemi;LC.length+;for(i=0;i<LB.length;i+)int k=LocateElem(LA,LB.elemi,equal);if(!k)ListInsert(LC,LC.length+1,LB.elemi);void main()SqList LA,LB,LC;ElemType a4=12,32,21,45;ElemType b5=32,34,54,12,27;InitList(LA);InitList(LB);InitList(LC);for(int i=1;i<5;i+)ListInsert(LA,i,ai-1);for(i=1;i<=5;i+)ListInsert(LB,i,bi-1);ListTraverse(LA,print);

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論