=0)個相同類型數(shù)據(jù)元素a0,a1,…,an-1構(gòu)成的有限序列。形式化定">
線性表的邏輯結(jié)構(gòu)及其基本操作線性表的順序存儲結(jié)構(gòu)線性表.ppt

線性表的邏輯結(jié)構(gòu)及其基本操作線性表的順序存儲結(jié)構(gòu)線性表.ppt

ID:52646694

大?。?74.50 KB

頁數(shù):63頁

時間:2020-04-12

線性表的邏輯結(jié)構(gòu)及其基本操作線性表的順序存儲結(jié)構(gòu)線性表.ppt_第1頁
線性表的邏輯結(jié)構(gòu)及其基本操作線性表的順序存儲結(jié)構(gòu)線性表.ppt_第2頁
線性表的邏輯結(jié)構(gòu)及其基本操作線性表的順序存儲結(jié)構(gòu)線性表.ppt_第3頁
線性表的邏輯結(jié)構(gòu)及其基本操作線性表的順序存儲結(jié)構(gòu)線性表.ppt_第4頁
線性表的邏輯結(jié)構(gòu)及其基本操作線性表的順序存儲結(jié)構(gòu)線性表.ppt_第5頁
資源描述:

《線性表的邏輯結(jié)構(gòu)及其基本操作線性表的順序存儲結(jié)構(gòu)線性表.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在PPT專區(qū)-天天文庫。

1、線性表的邏輯結(jié)構(gòu)及其基本操作線性表的順序存儲結(jié)構(gòu)線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)靜態(tài)鏈表應(yīng)用實(shí)例第二章線性表7/27/202112.1.線性表的邏輯結(jié)構(gòu)及其基本操作線性表是n(n>=0)個相同類型數(shù)據(jù)元素a0,a1,…,an-1構(gòu)成的有限序列。形式化定義:Linearlist=(D,R)其中:D0為某個數(shù)據(jù)對象的集合N為線性表長度7/27/20212線性表的主要操作初始化求長度取元素定位插入刪除7/27/20213例:利用線性表的基本運(yùn)算實(shí)現(xiàn)清除L中多余的重復(fù)節(jié)點(diǎn)。PURGE(Linear_list*L){inti=1,j,x,y;while(i

2、L,i);j=i+1;while(j<=LENGTH(L)){y=GET(L,j);if(x==y)DELETE(L,j);elsej++;}i++;}}7/27/202142.2線性表的順序存儲結(jié)構(gòu)--順序表設(shè)線性表的基地址為:LOC(a1),ai的存儲地址為:LOC(ai)=LOC(a0)+i*k1<=i<=na0a1aian-1……a0a1aian-1……01n-1Loc(a0)Loc(a0)+kiLoc(a0)+i*kLoc(a0)+(n-1)*k7/27/20215線性表的定義為:typedefintdatatype;//假定線性表元素的類型為整型#defin

3、emaxsize1024//假定線性表的最大長度為1024typedefstruct{datatypedata[maxsize];intlast;//指向最后結(jié)點(diǎn)的位置}sequenlist;7/27/202161、先定義結(jié)構(gòu)類型,再定義變量名structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};Structstudentstudent1,student2;C語言中定義結(jié)構(gòu)的方法7/27/202172、在聲明類型的同時定義結(jié)構(gòu)變量structstudent{intnum;ch

4、arname[20];charsex;intage;floatscore;charaddr[30];}student1,student2;7/27/202183、直接定義結(jié)構(gòu)變量struct{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}student1,student2;7/27/20219例:#defineMAXSIZE<最大元素個數(shù)>typedefstruct{charName[20];charSex;intAge;floatfareAmount;}datatype;7/27/202110線

5、性表元素的插入(在線性表L中第i個位置前插入新元素x)intINSERT(sequenlist*L,datatypex,inti){intj;if(((*L).last)>=maxsize-1){printf(“overflow”);returnNULL;}//溢出elseif((i<1)

6、

7、(i>((*L).last)+1){printf(“error”);returnNULL;}//非法位置else{for(j=(*L).last;j>=i-1;j--)(*L).data[j+1]=(*L).data[j];(*L).data[i-1]=x;(*L).las

8、t=(*L).last+1;}return(1);}7/27/202111線性表元素的刪除(在線性表L中刪除第i個元素)intDELETE(sequenlist*L,inti){intj;if((i<1)

9、

10、(i>(*L).last+1)){printf(“error”);returnNULL;}//非法位置else{for(j=i;j<=(*L).last;j++)(*L).data[j-1]=(*L).data[j];(*L).last--;//表長減1}return(1);}7/27/2021121、插入n/22、刪除(n-1)/23、按序號檢索O(1)4、按

11、內(nèi)容檢索n/2算法復(fù)雜性分析7/27/202113順序表的優(yōu)點(diǎn):無須為表示節(jié)點(diǎn)間的邏輯關(guān)系而增加額外的存儲空間可以方便的隨機(jī)存取表中的任一節(jié)點(diǎn)順序表的缺點(diǎn):插入和刪除運(yùn)算不方便由于要求占用連續(xù)的存儲空間,存儲分配只能預(yù)先進(jìn)行7/27/2021142.3線性表的鏈?zhǔn)酱鎯h不帶頭節(jié)點(diǎn)的鏈表帶頭節(jié)點(diǎn)的鏈表7/27/202115單鏈表結(jié)點(diǎn)的定義:typedefintdatatype;typedefstructnode{datatypedata;structnode*next;}linklist;節(jié)點(diǎn)的申請p=malloc(sizeof(link

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。