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

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)與算法c3a(編輯修改稿)

2024-11-14 15:43 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 。 //未發(fā)現(xiàn) }。 template class TElem long TLinearListSqu TElem::LocateNext(TElem amp。elem) { long i。 for (i=lastVisited+1。 ilen。 i++) if (room[i]==elem) { lastVisited=i。 return i。 } return 1。 //未發(fā)現(xiàn) }。 (六)插入操作 ? Insert(TElem amp。elem, long sn):該函數(shù)用于在表中第 sn個(gè)元素的前面插入指定的元素 elem,這里的 sn的含義同 Locate函數(shù)。 template class TElem TElem *TLinearListSqu TElem::Insert(TElem amp。elem, long sn) { long i, k。 int ret=0。 if (sn0) k=len+sn。 else k=sn1。 if ( klen) k=len。 //sn太大時(shí),在最后追加 else if (k0) k=0。 //sn太小時(shí),在最前面插入 if (len=size) //剩余空間不足時(shí),調(diào)用成員函數(shù)重新分配空間 { ret=ResizeRoom(size+10)。 //將空間擴(kuò)大為 size+10,并保留原內(nèi)容 if (ret0) throw TExcepLinearList(3)。 //分配不到空間時(shí),拋擲異常 } for (i=len1。 i=k。 i) room[i+1] = room[i]。 room[k]=elem。 len++。 return amp。room[k]。 } (七)刪除操作 ? 1. Delete(long sn):該函數(shù)刪除表中第 sn個(gè)元素 (sn的含義同 Locate),并將其值的地址返回。 sn的處理方法同 Insert template class TElem TElem *TLinearListSqu TElem::Delete(long sn) { long i, k。 if (sn0) k=len+sn。 else k=sn1。 if (k0 || k=len) throw TExcepLinearList(2)。 buffElem=room[k]。 for (i=k。 ilen。 i++) room[i] = room[i+1]。 len。 if (2*len size) //如果空余空間已達(dá)到一定程度,就縮小之 ResizeRoom(len+long(len/))。 return amp。buffElem。 } ? 2. Delete(TIndexSelector amp。sel, TElem *elemDeleted): 該函數(shù)用于刪除下標(biāo)選擇器 sel所指出的各元素,并將所刪除的元素的值存入一維數(shù)組 elemDeleted template class TElem long TLinearListSqu TElem::Delete(TIndexSelector amp。sel, TElem *elemDeleted) { long i。 long *indexDeleted。 i = ()。 //獲得 sel中下標(biāo)的總數(shù) indexDeleted = new(nothrow) long[i]。 if (indexDeleted==NULL) throw TExcepLinearList(4)。 i=(indexDeleted)。 //獲得 sel中各個(gè)下標(biāo)值,存放在數(shù)組indexDeleted i=DeleteByIndex(indexDeleted, i, elemDeleted)。 //調(diào)用 DeleteByIndex完成實(shí)際的刪除工作 delete indexDeleted。 //釋放臨時(shí)空間 return i。 }。 ? 3. DeleteByIndex(long *idxTobeDel, long numIdx, TElem:*elemDeleted):該函數(shù)執(zhí)行具體的刪除操作。由于是根據(jù)下標(biāo)列舉idxTobeDel進(jìn)行刪除,所以處理方法有所不同 template class TElem long TLinearListSqu TElem:: DeleteByIndex(long *idxTobeDel, long numIdx, TElem *elemDeleted) { long i, k。 k=0。 for (i=0。 ilen。 i++) { if (i==idxTobeDel[k]) { if (elemDeleted!=NULL) // elemDeleted為空時(shí)表示不保留所刪除的元素 elemDeleted[k] = room[i]。 k++。 } else room[ik] =room[i]。 } len = len k。 if (2*len size) // 剩余空間足夠大時(shí),調(diào)用ResizeRoom釋放多余的空間 ResizeRoom(len+long(len/))。 return k。 } 序號(hào): 0 1 2 3 4 5 6 7 8 9 . 10 11 12 元素: x x * * x * x x * * x * * 圖 刪除帶標(biāo)記的元素 k=2 k=3 異常處理與下標(biāo)選擇器 異常處理 ? 在程序設(shè)計(jì)語(yǔ)言中,異常 (Exception)是指程序運(yùn)行中,由于運(yùn)行環(huán)境或數(shù)據(jù)輸入或操作不當(dāng),所出現(xiàn)的使程序不能物理地運(yùn)行(而不論運(yùn)行結(jié)果是否正確)的錯(cuò)誤。這里,物理運(yùn)行是指程序在實(shí)際環(huán)境下運(yùn)行。 ? 在 C++中,為程序員提供了良好的處理異常的機(jī)制,其中心點(diǎn)是提供下列語(yǔ)句: try檢測(cè) /捕獲異常; catch處理 try所捕獲的異常; throw生成一個(gè)異常,交由 try捕獲; ? 我們這里直接采用 C++的異常機(jī)制。 ? 首先,設(shè)立一個(gè)表,存儲(chǔ)異常代碼和用于說(shuō)明異常的文字信息。為方便,我們也將其定義為類(lèi),如下所示。 struct TErrMessageRec //異常記錄 { int no。 //異常代碼 char msg[CNST_SizeErrMessage]。 //異常信息 }。 class TErrMessageList //異常表類(lèi) { TErrMessageRec msgList[CNST_MaxNumErrMessage]。 //用一維數(shù)組做異常表 public: int len。 //指示異常表的長(zhǎng)度(元素個(gè)數(shù)) TErrMessageList() //構(gòu)造函數(shù),這里主要是裝入異常表 { int i=0。 //下面示例性地為異常表裝入數(shù)據(jù) /* 0*/ msgList[i].no=i。 strcpy(msgList[i].msg, Unknown error)。 i++。 /* 1*/ msgList[i].no=i。 strcpy(msgList[i].msg, Parameters Out of range)。 i++。 /* 2*/ msgLis
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1