《数据结构》-第五章 数组和广义表_第1页
《数据结构》-第五章 数组和广义表_第2页
《数据结构》-第五章 数组和广义表_第3页
《数据结构》-第五章 数组和广义表_第4页
《数据结构》-第五章 数组和广义表_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章数组和广义表518VOIDRSHINTAN,INTK/把数组A的元素循环右移K位,只用一个辅助存储空间FORI1IA6,A6A12,A12A3,A3A9,A9A0第二条链A1A7,A7A13,A13A4,A4A10,A10A1第三条链A2A8,A8A14,A14A5,A5A11,A11A2恰好使所有元素都右移一次虽然未经数学证明,但作者相信上述规律应该是正确的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/新插入一个结点POLNODEMALLOCSIZEOFOLNODEIFPREARHEADIPELSEPRERIGHTPPRIGHTPAPREPPIIPJPBJPEPBE/插入行链表中IFACHEADPJACHEADPJPPDOWNNULLELSEWHILECPPJDOWNCPPJCPPJDOWNPDOWNCPPJDOWNCPPJDOWNPCPPJP/插入列链表中/IFELSEIFPAJJPREPAPAPARIGHT/PA右移一步ELSEIFPAEPBEPAEPBEPREPAPAPARIGHTPBPBRIGHT/直接相加ELSEIFPREARHEADIPARIGHTELSEPRERIGHTPARIGHTPPAPAPARIGHT/从行链表中删除IFACHEADPJPACHEADPJCPPJPDOWNELSECPPJDOWNPDOWN/从列链表中删除FREEP/ELSE/WHILE/FOR/OLMATRIX_ADD分析本题的具体思想在课本中有详细的解释说明528VOIDMPLIST_PIANDAOMPLISTPPREP,PPTPIFPTAGMULPHP,PEXPELSEPCOEFPEXP/把指数乘在本结点或其下属结点上PEXPPRETPNULLIFPFREEP/删除可能存在的常数项/MPLIST_PIANDAOVOIDMULMPLISTPPPTPIFPTAGPCOEFXELSEMULPHP,X/MUL529VOIDMPLIST_ADDMPLISTA,MPLISTB,MPLISTIFATAGIFCCOEFFREECCNULL/IFELSEIFATAGQBPRENULLWHILEPCEXPPEXPMPLIST_ADDAHP,BHP,CHPPRETPCPRECPPTPQQTPELSEIFPEXPQEXPCMPLNODEMALLOCSIZEOFMPLNODECEXPPEXPCHPAHPPRETPCPRECPPTPELSECMPLNODEMALLOCSIZEOFMPLNODECEXPQEXPCHPBHPPRETPCPRECQQTP/WHILEWHILEPCMPLNODEMALLOCSIZEOFMPLNODECEXPPEXPCHPPHPPRETPCPRECPPTPWHILEQCMPLNODEMALLOCSIZEOFMPLNODECEXPQEXPCHPQHPPRETPCPRECQQTP/将其同次项分别相加得到新的多项式,原理见第二章多项式相加一题/ELSEIFELSEIFATAGFORPAPTPTPPPTPIFPTPEXP0PTPCOEFX/当多项式中含有常数项时,加上常数项IFPTPCOEFFREEPTPPTPNULLELSEQMPLNODEMALLOCSIZEOFMPLNODEQCOEFXQEXP0QTAG0QTPNULLPTPQ/否则新建常数项,下同/ELSEIFELSEXACOEFFORPBPTPTPPPTPIFPTPEXP0PTPCOEFXIFPTPCOEFFREEPTPPTPNULLELSEQMPLNODEMALLOCSIZEOFMPLNODEQCOEFXQEXP0QTAG0QTPNULLPTPQ/ELSE/MPLIST_ADD530INTGLIST_GETDEPHGLISTL/求广义表深度的递归算法IFLTAGRETURN0/原子深度为0ELSEIFLRETURN1/空表深度为1MGLIST_GETDEPHLPTRHP1NGLIST_GETDEPHLPTRTPRETURNMNMN/GLIST_GETDEPH531VOIDGLIST_COPYGLISTA,GLISTBATOMAATOMELSE/当结点为子表时BTAG1IFAPTRHPBPTRHPMALLOCSIZEOFGLNODEGLIST_COPYAPTRHP,BPTRHP/复制表头IFAPTRTPBPTRTPMALLOCSIZEOFGLNODEGLIST_COPYAPTRTP,BPTRTP/复制表尾/ELSE/GLIST_COPY532INTGLIST_EQUALGLISTA,GLISTB/判断广义表A和B是否相等,是则返回1,否则返回0/广义表相等可分三种情况IFA/空表是相等的IFATAG/原子的值相等IFATAG/表头表尾都相等RETURN0/GLIST_EQUAL533VOIDGLIST_PRINTELEMGLISTA,INTLAYER/递归输出广义表的原子及其所在层次,LAYER表示当前层次IFARETURNIFATAGPRINTF“DDN“,AATOM,LAYERELSEGLIST_PRINTELEMAPTRHP,LAYER1GLIST_PRINTELEMAPTRTP,LAYER/注意尾表与原表是同一层次/GLIST_PRINTELEM534VOIDGLIST_REVERSEGLISTA/递归逆转广义表AIFATAGAPTRTPPTRHPAPTRHPAPTRHPD/交换表头和表尾GLIST_REVERSEAPTRHPGLIST_REVERSEAPTRTP/逆转表头和表尾/GLIST_REVERSE535STATUSCREATE_GLISTGLISTIFCHLNULLSCANF“C“,IFCHRETURNERRORRETURNOKLGLISTMALLOCSIZEOFGLNODELTAG1IFISALPHABETCH/输入是字母PGLISTMALLOCSIZEOFGLNODE/建原子型表头PTAG0PATOMCHLPTRHPPELSEIFCHCREATE_GLISTLPTRHP/建子表型表头ELSERETURNERRORSCANF“C“,IFCHLPTRTPNULLELSEIFCH,CREATE_GLISTLPTRTP/建表尾ELSERETURNERRORRETURNOK/CREATE_GLIST分析本题思路见书后解答536VOIDGLIST_PRINTLISTGLISTA/按标准形式输出广义表IFAPRINTF“/空表ELSEIFATAGPRINTF“D“,AATOM/原子ELSEPRINTF“GLIST_PRINTLISTAPTRHPIFAPTRTPPRINTF“,“GLIST_PRINTLISTAPTRTP/只有当表尾非空时才需要打印逗号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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论