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

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)與算法c3a-資料下載頁

2024-10-18 15:43本頁面
  

【正文】 … 線性鏈表的面向?qū)ο竺枋? (一)元素與關(guān)系描述 ? 下面是鏈表中結(jié)點(diǎn)的 C++描述,它代表著線性表的元素和關(guān)系。 template class TElem //上面是模板聲明,表明 TElem是一個(gè)可變(調(diào))類型,在使用 TLinkNode時(shí)動態(tài)決定 struct TLinkNode { TElem info。 //info的類型是可變的類模板 TElem TLinkNode *next。 //注 : 這里的 TLinkNode后可以省略 TElem }。 ? (二)鏈表對象描述 ? 鏈表對象應(yīng)該是前面介紹的線性表抽象類 TLinearList0的派生類,代表著整個(gè)線性鏈表。它需要記錄首結(jié)點(diǎn)的地址和鏈表中當(dāng)前結(jié)點(diǎn)個(gè)數(shù)等有關(guān)鏈表的信息,并針對其設(shè)置有關(guān)操作 template class TElem class TLinearListLink : public TLinearList0TElem { protected: TLinkNodeTElem *head。 TLinkNodeTElem *lastVisited。 long lastVisitedIndex。 TElem buffElem。 void ReleaseAll()。 public: TLinearListLink(void)。 ~TLinearListLink(void)。 virtual TElem amp。Get(long idx)。 virtual TElem *GetAddress(long idx)。 virtual TElem *Set(long idx, TElem amp。elem)。 virtual long CountElem(TElem amp。elem)。 virtual TElem *Prior(long idx)。 virtual TElem *Next(long idx)。 virtual long Locate(TElem amp。elem, long sn=1)。 virtual long Locate(TElem amp。elem, long *foundElemIndex=NULL)。 virtual long LocateFirst(TElem amp。elem)。 virtual long LocateNext(TElem amp。elem)。 virtual TElem *Insert(TElem amp。elem, long sn=1)。 virtual TElem *Delete(long sn=1)。 virtual long Delete(TIndexSelector amp。sel, TElem *elemDeleted=NULL)。 virtual long DeleteByIndex(long *idxTobeDel, long numIdx, TElem *elemDeleted=NULL)。 void Print()。 //Only for test //Newly added functions virtual TElem amp。Get(TLinkNodeTElem *pNode)。 virtual TLinkNodeTElem *GetNode(long idx)。 virtual long GetNodeIndex(TLinkNodeTElem *pNode)。 virtual TLinkNodeTElem *SetNode(TLinkNodeTElem *pNode, TElem amp。elem, TLinkNodeTElem *pNodeNext)。 virtual TLinkNodeTElem *SetNodeElem(TLinkNodeTElem *pNode, TElem amp。elem)。 virtual TLinkNodeTElem *SetNodeNext(TLinkNodeTElem *pNode, TLinkNodeTElem *pNodeNext)。 virtual TLinkNodeTElem *PriorNode(TLinkNodeTElem *pNode)。 virtual TLinkNodeTElem *NextNode(TLinkNodeTElem *pNode)。 virtual TLinkNodeTElem *PriorNode(long idx)。 virtual TLinkNodeTElem *NextNode(long idx)。 virtual TLinkNodeTElem *LocateNode(TElem amp。elem, long sn=1)。 virtual long LocateNode(TElem amp。elem, TLinkNodeTElem *foundElemPointer[])。 virtual TLinkNodeTElem *LocateNodeFirst(TElem amp。elem)。 virtual TLinkNodeTElem *LocateNodeNext(TElem amp。elem)。 virtual TLinkNodeTElem *InsertAfter(TLinkNodeTElem *pNodeTobeInserted, TLinkNodeTElem *pNodeBase)。 virtual TLinkNodeTElem *Insert(TLinkNodeTElem *pNodeTobeInserted, TLinkNodeTElem *pNodeBase)。 virtual TLinkNodeTElem *DeleteAfter(TLinkNodeTElem *pNode)。 virtual TLinkNodeTElem *Delete(TLinkNodeTElem *pNode)。 virtual TLinkNodeTElem *Insert(TLinkNodeTElem *pNode, long sn=1)。 }。 線性鏈表的面向?qū)ο髮?shí)現(xiàn) 下面給出 TLinearListLink中成員函數(shù)的實(shí)現(xiàn) (一)初始化 template class TElem TLinearListLink TElem::TLinearListLink() { head=NULL。 len=0。 lastVisitedIndex=0。 lastVisited=NULL。 }。 template class TElem TLinearListLink TElem::~TLinearListLink() { if (head!=NULL) ReleaseAll()。 ? }。 template class TElem void TLinearListLink TElem::ReleaseAll() {//釋放鏈表中所有元素 TLinkNodeTElem *p, *q。 p=head。 //p指向當(dāng)前要處理的結(jié)點(diǎn) while (p!=NULL) //從頭到尾依次釋放各結(jié)點(diǎn) { q=p。 //移動 p之前,令 q指向 p所指結(jié)點(diǎn),以防 p后移后丟失 p原指的結(jié)點(diǎn) p=pnext。 //p后移一步,使得下次循環(huán)時(shí), p指向下一個(gè)要處理的結(jié)點(diǎn) delete q。 //釋放 q所指結(jié)點(diǎn) } }
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1