freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu):第3章串與文本編輯(編輯修改稿)

2025-06-18 00:11 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 base[pos1+i]=[i]。 //插入元素 base[0]+=[0]。 return true。 } } 25 數(shù)據(jù)結(jié)構(gòu)與算法 串的存儲(chǔ)表示 ?順序串刪除操作 ?順序串刪除操作的功能是刪除 s串中從第 pos個(gè)位置開(kāi)始的長(zhǎng)度為 len的子串。如圖 35所示。 26 數(shù)據(jù)結(jié)構(gòu)與算法 串的存儲(chǔ)表示 27 數(shù)據(jù)結(jié)構(gòu)與算法 串的存儲(chǔ)表示 ?順序串刪除操作實(shí)現(xiàn)算法為: ?① 檢查參數(shù)的合法性,有兩種不合法的操作條件:一是 pos的值不在串 s的長(zhǎng)度范圍內(nèi),即 pos1或 posbase[0];二是從串 s第 pos個(gè)位置開(kāi)始不存在長(zhǎng)度為 len的子串,即pos+len1base[0]; ?② 將待刪除的子串復(fù)制給 t; ?③ 在 s中刪除指定的子串,修改 s的串長(zhǎng),操作成功,結(jié)束。 28 數(shù)據(jù)結(jié)構(gòu)與算法 串的存儲(chǔ)表示 【 算法 33】 bool SqString::DelSubString(int pos,int len,SqStringamp。 t) { if((pos1)||(posbase[0])||pos1+lenbase[0]) { cout刪除失敗 endl。 return false。 } else { for(int i=pos。i=pos1+len。i++) //刪除的元素復(fù)制給 t [ipos+1]=base[i]。 [0]=len。 29 數(shù)據(jù)結(jié)構(gòu)與算法 串的存儲(chǔ)表示 for(i=pos+len。i=base[0]。i++) //元素前移 { base[ilen]=base[i]。 } base[0]=len。 return true。 } } 30 數(shù)據(jù)結(jié)構(gòu)與算法 串的存儲(chǔ)表示 ?輸出順序串操作 ?順序串輸出操作的功能是將串中的字符全部輸出。順序串輸出操作實(shí)現(xiàn)算法為: ?① 檢查串時(shí)否為空串,若為空,輸出空串信息; ?② 若串非空,則利用循環(huán)輸出串的內(nèi)容; ?③ 操作成功,結(jié)束。 31 數(shù)據(jù)結(jié)構(gòu)與算法 串的存儲(chǔ)表示 【 算法 34】 void SqString::OutputString() { if(base[0]==0) //判斷串是否為空串 cout空串 endl。 else { for(int i=1。i=base[0]。i++) coutbase[i]。 coutendl。 } } 32 數(shù)據(jù)結(jié)構(gòu)與算法 串的存儲(chǔ)表示 ?串的連接 ?串的連接,顧名思義,是指將兩個(gè)已有的串連接成為一個(gè)串。例如,有兩個(gè)串 s和 t都是類 SqString的對(duì)象,那么兩個(gè)串連接后為s=s+t,如圖 36所示。 33 數(shù)據(jù)結(jié)構(gòu)與算法 串的存儲(chǔ)表示 ?順序串連接操作實(shí)現(xiàn)算法為: ?① 計(jì)算連接后的串長(zhǎng),如果超出順序串的maxlen,重新分配空間; ?② 否則,從當(dāng)前串的第 base[0]+1個(gè)位置起,依次將 t串中每一個(gè)字符復(fù)制到 s; ?③ 更新當(dāng)前串長(zhǎng),操作成功,返回。 34 數(shù)據(jù)結(jié)構(gòu)與算法 串的存儲(chǔ)表示 【 算法 35】 void SqString::ConnectString(SqStringamp。 t) { if(base[0]+[0]maxlen) { char *p=new char[base[0]+[0]]。 for(int i=1。i=base[0]。i++) p[i]=base[i]。 delete []base。 base=p。 maxlen=base[0]+[0]。 } for(int i=1。i=[0]。i++) base[base[0]+i]=[i]。 base[0]+=[0]。 } 35 數(shù)據(jù)結(jié)構(gòu)與算法 串的存儲(chǔ)表示 ?6. 求子串(非空子串) ?求子串的定義為將串 s中的第 pos個(gè)字符開(kāi)始長(zhǎng)度為 len的子串,復(fù)制到串 t中。如圖 37所示。 36 數(shù)據(jù)結(jié)構(gòu)與算法 串的存儲(chǔ)表示 ?順序串中求子串的實(shí)現(xiàn)算法為: ?① 檢查參數(shù)的合法性,當(dāng) pos1或posbase[0],或 len1或 pos+len1base[0]時(shí),操作失??; ?② 將當(dāng)前串從 pos指向位置開(kāi)始的長(zhǎng)度為 len的子串復(fù)制到串 t中; ?③操作成功,結(jié)束。 37 數(shù)據(jù)結(jié)構(gòu)與算法 串的存儲(chǔ)表示 【 算法 36】 bool SqString::SubString(int pos,int len,SqString amp。t) { if((pos1)||(posbase[0])||pos1+lenbase[0]) { cout操作失敗 endl。 return false。 } else { for(int i=pos。i=len。i++) [ipos+1]=base[i]。 [0]=len。 return true。 } } 38 數(shù)據(jù)結(jié)構(gòu)與算法 串的存儲(chǔ)表示 ? 串的鏈?zhǔn)酱鎯?chǔ) ?串的順序存儲(chǔ)方式節(jié)約了系統(tǒng)開(kāi)銷,但是如果需要經(jīng)常對(duì)串執(zhí)行插入、刪除子串等操作,就需要頻繁移動(dòng)串中的字符,因此,我們引入串的另一種存儲(chǔ)方式 ——鏈?zhǔn)酱鎯?chǔ),又稱動(dòng)態(tài)存儲(chǔ)。這樣就可以避免頻繁的插入、刪除操作帶來(lái)的效率低下等問(wèn)題。 39 數(shù)據(jù)結(jié)構(gòu)與算法 串的存儲(chǔ)表示 ?在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)下,存儲(chǔ)空間被分成一系列大小相同的結(jié)點(diǎn),每個(gè)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1