資源描述:
《實(shí)驗(yàn)1 線性表及其應(yīng)用實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、暨南大學(xué)本科實(shí)驗(yàn)報(bào)告專用紙課程名稱數(shù)據(jù)結(jié)構(gòu)成績(jī)?cè)u(píng)定實(shí)驗(yàn)項(xiàng)目名稱線性表及其應(yīng)用指導(dǎo)教師王曉明實(shí)驗(yàn)項(xiàng)目編號(hào)實(shí)驗(yàn)一實(shí)驗(yàn)項(xiàng)目類型綜合性實(shí)驗(yàn)地點(diǎn)南海樓601學(xué)生姓名朱芷漫學(xué)號(hào)2010051875學(xué)院信息科學(xué)技術(shù)學(xué)院系計(jì)算機(jī)專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)實(shí)驗(yàn)時(shí)間2011年9月7日18:30午~9月7日20:30午溫度℃濕度一、實(shí)驗(yàn)?zāi)康暮鸵髮?shí)驗(yàn)?zāi)康模菏炀氄莆站€性表基本操作的實(shí)現(xiàn)及應(yīng)用實(shí)驗(yàn)要求:在上機(jī)前寫出全部源程序完畢并調(diào)試完畢。二、實(shí)驗(yàn)原理和主要內(nèi)容1.建立4個(gè)元素的順序表SqList={2,3,4,5},實(shí)現(xiàn)順序表的基本操作;在SqList={2,
2、3,4,5}的元素4與5之間插入一個(gè)元素9,實(shí)現(xiàn)順序表插入的基本操作;在SqList={2,3,4,9,5}中刪除指定位置(i=3)上的元素,實(shí)現(xiàn)順序表刪除的操作。2.利用順序表完成一個(gè)班級(jí)的一個(gè)學(xué)期的課程的管理:能夠增加、刪除、修改學(xué)生的成績(jī)記錄。三、主要儀器設(shè)備PC機(jī),WindowsXP操作平臺(tái),VisualC++四、調(diào)試分析學(xué)生課程管理系統(tǒng)的調(diào)試過(guò)程中發(fā)現(xiàn)一些錯(cuò)誤,主要是參數(shù)設(shè)置的問(wèn)題,經(jīng)過(guò)修改,錯(cuò)誤得到排除。五、測(cè)試結(jié)果1.順序表2.學(xué)生課程管理系統(tǒng)附錄(源程序)1.順序表的操作#include#d
3、efineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2typedefintStatus;typedefintElemType;#defineLIST_INIT_SIZE10#defineLISTINCREMENT2typedefstructshunxubiao{ElemType*list;intsize;intMaxsize;}SqList;intInitList_Sq(SqList&L){//構(gòu)造一個(gè)空的線性表L。L.l
4、ist=newElemType[LIST_INIT_SIZE];if(!L.list)returnOVERFLOW;//存儲(chǔ)分配失敗L.size=0;//長(zhǎng)度為0L.Maxsize=LIST_INIT_SIZE;//初始存儲(chǔ)容量returnOK;}//InitList_SqintInsertList_Sq(SqList&L,inti,ElemTypee){ElemType*p,*q;if(i<1
5、
6、i>L.Maxsize+1)returnERROR;q=&(L.list[i-1]);//q指示插入位置for(p=&(L.list[
7、L.Maxsize-1]);p>=q;--p)*(p+1)=*p;//插入位置及之后的元素右移*q=e;//插入e++L.size;//表長(zhǎng)增1returnOK;}//ListInsert_SqintLocateElem_Sq(SqListL,ElemTypee){//在順序表中查詢數(shù)據(jù)元素e,若存在,則返回它的位序,否則返回0inti=1;//i的初值為第1元素的位序ElemType*p=L.list;//p的初值為第1元素的存儲(chǔ)位置while(i<=L.size&&*p!=e){++i;++p;}if(i<=L.size)re
8、turni;elsereturn0;}StatusInsertList_Sq(SqList&L,ElemTypee,ElemTypef,ElemTypeg){inti=LocateElem_Sq(L,e);intj=LocateElem_Sq(L,f);if(i==j-1){InsertList_Sq(L,j,g);returnOK;}elsereturnERROR;}intGetList_Sq(SqListL,inti){if(i>0&&i<=L.size){returnL.list[i];}elsereturnERROR;}S
9、tatusListDelete_Sq(SqList&L,inti,ElemType&e){ElemType*p,*q;if((i<1)
10、
11、(i>L.Maxsize))returnERROR;p=&(L.list[i-1]);//p為被刪除元素的位置e=*p;//被刪除元素的值賦給eq=L.list+L.size-1;//表尾元素的位置for(++p;p<=q;++p)*(p-1)=*p;//被刪除元素之后的元素左移--L.size;//表長(zhǎng)減1returnOK;}//ListDelete_SqvoidCreate_Sq(SqLis
12、t&L){cout<<"創(chuàng)建順序表"<>count;for(inti=0;i>L.list[i