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

正文內(nèi)容

[工學(xué)]數(shù)據(jù)結(jié)構(gòu)——第4章 串c-文庫(kù)吧

2024-10-01 18:32 本頁(yè)面


【正文】 turn nstr。 for (j=0。ji1。j++) //將當(dāng)前串 data[0..i2]?nstr [j]=data[j]。 for (j=0。j。j++) //將 [0..]?nstr [i+j1]=[j]。 for (j=i1。jlength。j++) //將當(dāng)前串 data[i1..length1]?nstr [+j]=data[j]。 =length+。 return nstr。 //返回新建的順序串 } ( 7)串刪除 DelStr(i,j) 從當(dāng)前串中刪去第 i個(gè)字符開(kāi)始的連續(xù) j個(gè)字符產(chǎn)生一個(gè)子串,并返回這個(gè)子串。當(dāng)參數(shù)不正確時(shí)返回一個(gè)空串。對(duì)應(yīng)的算法如下: public SqStringClass DelStr(int i,int j) { int k。 SqStringClass nstr=new SqStringClass()。 //新建一個(gè)空串 if (i=0 || ilength || i+j1length) //參數(shù)不正確時(shí)返回空串 return nstr。 for (k=0。ki1。k++) //將當(dāng)前串 data[0..i2]?nstr [k]=data[k]。 for (k=i+j1。klength。k++) //將當(dāng)前串 data[i+j1..length1]?nstr [kj]=data[k]。 =lengthj。 return nstr。 //返回新建的順序串 } ( 8)串替換 RepStr(i,j,s) 將當(dāng)前串中第 i個(gè)字符開(kāi)始的連續(xù) j個(gè)字符用串 s替換而產(chǎn)生一個(gè)新串,并返回這個(gè)新串。當(dāng)參數(shù)不正確時(shí)返回一個(gè)空串。對(duì)應(yīng)的算法如下: public SqStringClass RepStr(int i,int j,SqStringClass s) { int k。 SqStringClass nstr=new SqStringClass()。 //新建一個(gè)空串 if (i=0 || ilength || i+j1length) //參數(shù)不正確時(shí)返回空串 return nstr。 for (k=0。ki1。k++) //將當(dāng)前串 data[0..i2]?nstr [k]=data[k]。 for (k=0。k。k++) //將 [0..]?nstr [i+k1]=[k]。 for (k=i+j1。klength。k++) //將當(dāng)前串 data[i+j1..length1]?nstr [+kj]=data[k]。 =lengthj+。 return nstr。 //返回新建的順序串 } ( 9)串輸出 DispStr() 將當(dāng)前串 s的所有字符構(gòu)成一個(gè)字符串并輸出。對(duì)應(yīng)的算法如下: public string DispStr() { int i。 string mystr=。 if (length==0) mystr = 空串 。 else { for (i=0。ilength。i++) mystr+=data[i].ToString()。 } return mystr。 } 【 例 】 設(shè)計(jì)一個(gè)算法 StrEqueal(s,t)比較兩個(gè)順序串 s、t是否相等。 解: 兩個(gè)順序串對(duì)象 s、 t相等的條件是它們的長(zhǎng)度相等且所有對(duì)應(yīng)位置上的字符均相同。對(duì)應(yīng)的算法如下: public bool StrEqueal(SqStringClass s, SqStringClass t) { int i。 if (!=) return false。 for (i=0。 i。i++) if ([i]!=[i]) return false。 return true。 } 串的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)-鏈串 通常將鏈串中每個(gè)結(jié)點(diǎn)所存儲(chǔ)的字符個(gè)數(shù)稱為結(jié)點(diǎn)大小 。 A B C D E F G H I J K L M N ∧ h e a d 結(jié)點(diǎn)大小為 4的鏈串 : 結(jié)點(diǎn)大小為 1的鏈串 : A B M N ∧ … h e a d 為簡(jiǎn)便起見(jiàn),這里規(guī)定鏈串結(jié)點(diǎn)大小均為 1。 鏈串的結(jié)點(diǎn)類 LinkNode定義如下: class LinkNode { public char data。 //存放一個(gè)字符 public LinkNode next。 //指向下一個(gè)結(jié)點(diǎn) }。 一個(gè)鏈串用一個(gè)頭結(jié)點(diǎn) head來(lái)唯一標(biāo)識(shí)。鏈串類LinkStringClass的定義如下: class LinkStringClass { public LinkNode head=new LinkNode()。 //鏈串頭結(jié)點(diǎn) public LinkStringClass() //構(gòu)造函數(shù) ,用于鏈串初始化 { =null。 } //鏈串的基本運(yùn)算算法 } 下面討論在鏈串上實(shí)現(xiàn)串基本運(yùn)算的算法。 ( 1)建立鏈串 StrAssign(cstr) 由一個(gè)字符串常量 cstr建立一個(gè)鏈串,其頭結(jié)點(diǎn)為 head。以下采用尾插法建立鏈串。對(duì)應(yīng)的算法如下: public void StrAssign(string cstr) { int i。 LinkNode r=head,p。 //r始終指向尾結(jié)點(diǎn) for (i=0。i。i++) //循環(huán)建立字符結(jié)點(diǎn) { p=new LinkNode()。 =cstr[i]。 =p。 r=p。 //將 p結(jié)點(diǎn)插入到尾部 } =null。 //尾結(jié)點(diǎn)的 next置為 null } 例如, cstr=“abcdef”,執(zhí)行 StrAssign(cstr)方法的結(jié)果如下圖所示。 c s tr : 串對(duì)象 s : a b c d e f a s . S trA s s ig n ( c s tr ) h e a d b c d e f ∧ ( 2)串復(fù)制 StrCopy(t) 將串 t的每個(gè)結(jié)點(diǎn)復(fù)制并鏈接到當(dāng)前串尾。以下采用尾插法建立當(dāng)前鏈串。對(duì)應(yīng)的算法如下: public void StrCopy(LinkStringClass t) { LinkNode p=,q,r。 r=head。 //r始終指向尾結(jié)點(diǎn) while (p!=null) //將 t的結(jié)點(diǎn) p復(fù)制產(chǎn)生結(jié)點(diǎn) q { q=new LinkNode()。 =。 =q。 r=q。 //將 q結(jié)點(diǎn)插入到尾部 p=。 } =null。 //尾結(jié)點(diǎn)的 next置為 null } ( 3)求串長(zhǎng) StrLength() 返回當(dāng)前串中的字符個(gè)數(shù)。對(duì)應(yīng)的算法如下: public int StrLength() { int i=0。 LinkNode p=。 //p指向第一個(gè)字符結(jié)點(diǎn) while (p!=null) { i++。 p=。 //p移到下一個(gè)字符結(jié)點(diǎn) } return i。 } ( 4)串連接 Concat(t) 返回由當(dāng)前串 s和串 t所有字符連接在一起形成的新串。以下采用尾插法建立鏈串 nstr并返回。對(duì)應(yīng)的算法如下: public LinkStringClass Concat(LinkString
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1