




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)結(jié)構(gòu)主講人:張靜常州信息職業(yè)技術(shù)學(xué)院2.2線性表的順序存儲(chǔ)結(jié)構(gòu)順序表Part01順序表
使用一組地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)線性表的各個(gè)數(shù)據(jù)元素,該結(jié)構(gòu)稱作線性表的順序存儲(chǔ)結(jié)構(gòu),簡稱為順序表(SequentialList)。順序表的定義順序表中數(shù)據(jù)元素存儲(chǔ)地址的計(jì)算順序表Part02順序表的基本操作1.順序表類聲明、構(gòu)造方法、存取操作實(shí)現(xiàn)順序表的基本操作聲明構(gòu)造方法publicSeqList(int
length){//構(gòu)造容量為length的空表
this.data=newT[length];//創(chuàng)建長度為length的數(shù)組,元素均為null
this.n=0;//空表長度為0}publicSeqList(T[]values){//由values數(shù)組構(gòu)造順序表this(values.length);//創(chuàng)建容量為values.length的空表for(int
i=0;i<values.length;i++){//復(fù)制數(shù)組元素
this.data[i]=values[i];//對(duì)象引用賦值}this.n=values.length;//順序表長度為數(shù)組values的長度} publicSeqList(){//創(chuàng)建默認(rèn)容量為10的空表
this(10);//構(gòu)造方法重載,調(diào)用本類已聲明的指定參數(shù)列表的構(gòu)造方法}1.順序表類聲明、構(gòu)造方法、存取操作實(shí)現(xiàn)順序表的基本操作獲取值設(shè)置值
2.求表長、清空、判斷表空順序表的基本操作求表長清空判斷表空3.遍歷順序表順序表的基本操作時(shí)間復(fù)雜度:O(n)public
voidprintList(){//遍歷順序表所有元素for(int
i=0;i<this.n;i++){System.out.println(this.data[i]);} }4.順序表的查找順序表的基本操作(1)查找算法//在順序表查找首次出現(xiàn)的與key相等元素,返回元素位置//若不存在返回-1public
intindexOf(Tkey){for(int
i=0;i<this.n;i++){if(key.equals(this.data[i])){
return
i;}}return-1;}(2)判斷是否包含某元素算法//判斷順序表中是否包含key元素public
booleancontains(Tkey){for(int
i=0;i<this.n;i++){if(key.equals(this.data[i])){
return
true;}}return
false;}時(shí)間復(fù)雜度:O(n)5.順序表的插入順序表的基本操作在ai位置插入40125439…a0a1a2…aiai+1…an-2an-15774…892840若插入位置不合理,拋出下標(biāo)越界異常:下標(biāo)范圍為0~n-1,允許直接在表尾后添加元素,因此合理的插入位置為0~n;如果順序表的長度大于等于數(shù)組長度,則動(dòng)態(tài)擴(kuò)容;從最后一個(gè)元素開始向前遍歷到下標(biāo)i處,依次將它們后移1位;將要插入的元素填入下標(biāo)i處;表長加1。5.順序表的插入順序表的基本操作public
intinsert(int
i,Tt){//在順序表的位置i處插入元素t,返回t序號(hào)if(t==null)throw
newNullPointerException("t==null");//拋出空對(duì)象異常if(i>=0&&i<=this.n){Tsrc[]=this.data;//保存原數(shù)組if(this.n==data.length){//若數(shù)組滿,則擴(kuò)充順序表的數(shù)組容量
this.data=newT[src.length*2];//重新申請(qǐng)一個(gè)容量為原來2倍的數(shù)組
for(int
j=0;j<i;j++){
this.data[j]=src[j];//復(fù)制當(dāng)前數(shù)組前i個(gè)元素} }
for(int
j=this.n-1;j>=i;j--){//從最后一個(gè)位置開始到位置i處,每一個(gè)元素向后移動(dòng)1位
this.data[j+1]=src[j];}
this.data[i]=t;//把要插入的元素t存放在位置i處
this.n++;
return
i;//返回下標(biāo)}else{
throw
newIndexOutOfBoundsException(i+"下標(biāo)越界");//拋出下標(biāo)越界異常} }
時(shí)間復(fù)雜度:O(n)6.順序表的刪除順序表的基本操作刪除ai位置上的元素74125439…a0a1a2…aiai+1…an-2an-15774…8928若是空表,拋出異常;若刪除位置不合理,拋出下標(biāo)越界異常;從刪除元素位置開始遍歷到最后一個(gè)元素位置,依次將它們向前移動(dòng)1位;表長減1。6.順序表的刪除順序表的基本操作
時(shí)間復(fù)雜度:O(n)publicTremove(int
i){if(this.n==0){try{
throw
newException("空表無法刪除!");}catch(Exceptione){
e.printStackTrace();}}
if(i>=0&&i<this.n){Told=this.data[i];//old中存放被刪除元素
for(int
j=i;j<this.n-1;j++){
this.data[j]=this.data[j+1];//從位置i+1開始每個(gè)元素依次前移一位}
this.data[this.n-1]=null;//設(shè)置最后一個(gè)位置元素為空
this.n--;
return
old;}else{
throw
newIndexOutOfBoundsException(i+"下標(biāo)越界");
//拋出下標(biāo)越界異常} }順序表結(jié)構(gòu)簡單,便于隨機(jī)訪問表中的任一元素,但在順序表中進(jìn)行插入、刪除操作時(shí),平均移動(dòng)次數(shù)大約為n/2(n為表中元素個(gè)數(shù)),當(dāng)n較大時(shí),順序表的插入、刪除操作執(zhí)行效率低。同時(shí),通常用數(shù)組實(shí)現(xiàn)的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026屆安徽省淮南市第一中學(xué)創(chuàng)新班化學(xué)高三上期中經(jīng)典試題含解析
- 九九重陽節(jié)促銷活動(dòng)方案
- 肌營養(yǎng)不良的臨床護(hù)理
- 2025年教師資格考試重點(diǎn)復(fù)習(xí)試卷及答案
- 幼兒園教師三八婦女節(jié)主題活動(dòng)方案
- 市場細(xì)分概述
- 新疆維吾爾自治區(qū)生產(chǎn)建設(shè)兵團(tuán)第七師高級(jí)中學(xué)2026屆化學(xué)高二第一學(xué)期期中達(dá)標(biāo)檢測模擬試題含解析
- 巴士安全知識(shí)培訓(xùn)內(nèi)容課件
- 巨幼紅細(xì)胞貧血疾病課件
- 巧繪節(jié)氣圖課件
- 2025年杭州市檢察機(jī)關(guān)招錄聘用制書記員考試筆試試題(含答案)
- 2025年應(yīng)急管理普法知識(shí)競賽題(附答案)
- 2024年重慶雙江航運(yùn)發(fā)展有限公司招聘真題
- 信任機(jī)制構(gòu)建-洞察及研究
- 施工組織方案拆房子
- 現(xiàn)場液位計(jì)培訓(xùn)課件圖片
- 景區(qū)演藝演員管理制度
- 2024年甘肅省張家川回族自治縣教育局公開招聘試題含答案分析
- 親子活動(dòng)熱狗活動(dòng)方案
- 2025年黑龍江、吉林、遼寧、內(nèi)蒙古高考生物真題試卷(解析版)
- 河南省鄭州市2023-2024學(xué)年高一下學(xué)期6月期末物理試題(解析版)
評(píng)論
0/150
提交評(píng)論