《數(shù)據(jù)結(jié)構(gòu)》-第五章 數(shù)組和廣義表_第1頁
《數(shù)據(jù)結(jié)構(gòu)》-第五章 數(shù)組和廣義表_第2頁
《數(shù)據(jù)結(jié)構(gòu)》-第五章 數(shù)組和廣義表_第3頁
《數(shù)據(jù)結(jié)構(gòu)》-第五章 數(shù)組和廣義表_第4頁
《數(shù)據(jù)結(jié)構(gòu)》-第五章 數(shù)組和廣義表_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第五章數(shù)組和廣義表518VOIDRSHINTAN,INTK/把數(shù)組A的元素循環(huán)右移K位,只用一個輔助存儲空間FORI1IA6,A6A12,A12A3,A3A9,A9A0第二條鏈A1A7,A7A13,A13A4,A4A10,A10A1第三條鏈A2A8,A8A14,A14A5,A5A11,A11A2恰好使所有元素都右移一次雖然未經(jīng)數(shù)學(xué)證明,但作者相信上述規(guī)律應(yīng)該是正確的519VOIDGET_SADDLEINTAMN/求矩陣A中的馬鞍點FORI0IBDATAPBJCDATAPCIXCDATAPCJBDATAPBJCDATAPCEBDATAPBEPBPCELSECDATAPCIXCDATAPCJADATAPAJCDATAPCEADATAPAEPAPC/WHILEWHILEADATAPAX/插入A中剩余的元素第X行CDATAPCIXCDATAPCJADATAPAJCDATAPCEADATAPAEPAPCWHILEBDATAPBX/插入B中剩余的元素第X行CDATAPCIXCDATAPCJBDATAPBJCDATAPCEBDATAPBEPBPC/FORCTUPC/TSMATRIX_ADD522VOIDTSMATRIX_ADDTOTSMATRIXIBDATAPBJADATAPCIXADATAPCJBDATAPBJADATAPCEBDATAPBEPBPCELSEADATAPCIXADATAPCJADATAPAJADATAPCEADATAPAEPAPC/WHILEWHILEADATAPAX/插入A中剩余的元素第X行ADATAPCIXADATAPCJADATAPAJADATAPCEADATAPAEPAPCWHILEBDATAPBX/插入B中剩余的元素第X行ADATAPCIXADATAPCJBDATAPBJADATAPCEBDATAPBEPBPC/FORATUPCFORIATUIRIGHT/逐次遍歷每一個行鏈表PRINTF“DDDN“,I,PJ,PE/PRINT_OLMATRIX527VOIDOLMATRIX_ADDOLMATRIXJJPBJ/新插入一個結(jié)點POLNODEMALLOCSIZEOFOLNODEIFPREARHEADIPELSEPRERIGHTPPRIGHTPAPREPPIIPJPBJPEPBE/插入行鏈表中IFACHEADPJACHEADPJPPDOWNNULLELSEWHILECPPJDOWNCPPJCPPJDOWNPDOWNCPPJDOWNCPPJDOWNPCPPJP/插入列鏈表中/IFELSEIFPAJJPREPAPAPARIGHT/PA右移一步ELSEIFPAEPBEPAEPBEPREPAPAPARIGHTPBPBRIGHT/直接相加ELSEIFPREARHEADIPARIGHTELSEPRERIGHTPARIGHTPPAPAPARIGHT/從行鏈表中刪除IFACHEADPJPACHEADPJCPPJPDOWNELSECPPJDOWNPDOWN/從列鏈表中刪除FREEP/ELSE/WHILE/FOR/OLMATRIX_ADD分析本題的具體思想在課本中有詳細(xì)的解釋說明528VOIDMPLIST_PIANDAOMPLISTPPREP,PPTPIFPTAGMULPHP,PEXPELSEPCOEFPEXP/把指數(shù)乘在本結(jié)點或其下屬結(jié)點上PEXPPRETPNULLIFPFREEP/刪除可能存在的常數(shù)項/MPLIST_PIANDAOVOIDMULMPLISTPPPTPIFPTAGPCOEFXELSEMULPHP,X/MUL529VOIDMPLIST_ADDMPLISTA,MPLISTB,MPLISTIFATAGIFCCOEFFREECCNULL/IFELSEIFATAGQBPRENULLWHILEPCEXPPEXPMPLIST_ADDAHP,BHP,CHPPRETPCPRECPPTPQQTPELSEIFPEXPQEXPCMPLNODEMALLOCSIZEOFMPLNODECEXPPEXPCHPAHPPRETPCPRECPPTPELSECMPLNODEMALLOCSIZEOFMPLNODECEXPQEXPCHPBHPPRETPCPRECQQTP/WHILEWHILEPCMPLNODEMALLOCSIZEOFMPLNODECEXPPEXPCHPPHPPRETPCPRECPPTPWHILEQCMPLNODEMALLOCSIZEOFMPLNODECEXPQEXPCHPQHPPRETPCPRECQQTP/將其同次項分別相加得到新的多項式,原理見第二章多項式相加一題/ELSEIFELSEIFATAGFORPAPTPTPPPTPIFPTPEXP0PTPCOEFX/當(dāng)多項式中含有常數(shù)項時,加上常數(shù)項IFPTPCOEFFREEPTPPTPNULLELSEQMPLNODEMALLOCSIZEOFMPLNODEQCOEFXQEXP0QTAG0QTPNULLPTPQ/否則新建常數(shù)項,下同/ELSEIFELSEXACOEFFORPBPTPTPPPTPIFPTPEXP0PTPCOEFXIFPTPCOEFFREEPTPPTPNULLELSEQMPLNODEMALLOCSIZEOFMPLNODEQCOEFXQEXP0QTAG0QTPNULLPTPQ/ELSE/MPLIST_ADD530INTGLIST_GETDEPHGLISTL/求廣義表深度的遞歸算法IFLTAGRETURN0/原子深度為0ELSEIFLRETURN1/空表深度為1MGLIST_GETDEPHLPTRHP1NGLIST_GETDEPHLPTRTPRETURNMNMN/GLIST_GETDEPH531VOIDGLIST_COPYGLISTA,GLISTBATOMAATOMELSE/當(dāng)結(jié)點為子表時BTAG1IFAPTRHPBPTRHPMALLOCSIZEOFGLNODEGLIST_COPYAPTRHP,BPTRHP/復(fù)制表頭IFAPTRTPBPTRTPMALLOCSIZEOFGLNODEGLIST_COPYAPTRTP,BPTRTP/復(fù)制表尾/ELSE/GLIST_COPY532INTGLIST_EQUALGLISTA,GLISTB/判斷廣義表A和B是否相等,是則返回1,否則返回0/廣義表相等可分三種情況IFA/空表是相等的IFATAG/原子的值相等IFATAG/表頭表尾都相等RETURN0/GLIST_EQUAL533VOIDGLIST_PRINTELEMGLISTA,INTLAYER/遞歸輸出廣義表的原子及其所在層次,LAYER表示當(dāng)前層次IFARETURNIFATAGPRINTF“DDN“,AATOM,LAYERELSEGLIST_PRINTELEMAPTRHP,LAYER1GLIST_PRINTELEMAPTRTP,LAYER/注意尾表與原表是同一層次/GLIST_PRINTELEM534VOIDGLIST_REVERSEGLISTA/遞歸逆轉(zhuǎn)廣義表AIFATAGAPTRTPPTRHPAPTRHPAPTRHPD/交換表頭和表尾GLIST_REVERSEAPTRHPGLIST_REVERSEAPTRTP/逆轉(zhuǎn)表頭和表尾/GLIST_REVERSE535STATUSCREATE_GLISTGLISTIFCHLNULLSCANF“C“,IFCHRETURNERRORRETURNOKLGLISTMALLOCSIZEOFGLNODELTAG1IFISALPHABETCH/輸入是字母PGLISTMALLOCSIZEOFGLNODE/建原子型表頭PTAG0PATOMCHLPTRHPPELSEIFCHCREATE_GLISTLPTRHP/建子表型表頭ELSERETURNERRORSCANF“C“,IFCHLPTRTPNULLELSEIFCH,CREATE_GLISTLPTRTP/建表尾ELSERETURNERRORRETURNOK/CREATE_GLIST分析本題思路見書后解答536VOIDGLIST_PRINTLISTGLISTA/按標(biāo)準(zhǔn)形式輸出廣義表IFAPRINTF“/空表ELSEIFATAGPRINTF“D“,AATOM/原子ELSEPRINTF“GLIST_PRINTLISTAPTRHPIFAPTRTPPRINTF“,“GLIST_PRINTLISTAPTRTP/只有當(dāng)表尾非空時才需要打印逗號PRINTF“/ELSE/GLIST_PRINTLIST537VOIDGLIST_DELELEMGLISTELSEIFAPTRHPTAGAAPTRTP/刪去元素值為X的表頭FREEQGLIST_DELELEMA,XIFAPTRTPGLIST_DELELEMAPTRTP,X/GLIST_DELELEM539VOIDGLIST_PRINTELEM_LORDERGLISTA/按層序輸出廣義表A中的所有元素INITQUEU

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論