- 1、本文档共93页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
begin crtlists(st, ls2); new(ls1); ls1^.tag:=1; ls1^.hp:=ls2; ls1^.tp:=ls; ls:=ls1 end; procedure Tgyb.prnt; var i, ix, iy: integer; s: char; begin lsi:=1; prt(ls); {将广义表ls转换成书写形式后存入数组lsa中} …… ix:=10; iy:=10; for i:= 1 to lsi-1 do begin s:=lsa[i]; {在绘图板的(ix, iy)位置中显示字符s;} ix:=ix+20 end end; 在这个类的实现中,head、tail及merg操作的处理过程都比较简单,crt操作所涉及的crtlists过程以及prnt操作所涉及的prt过程均已在前节中作过讨论,这里尚需说明的是: 在prt过程中,我们使用了write语句输出广义表书写形式中的每一个字符。但在演示程序中,为了将结果显示在绘图板上, 先将输出的字符集中输出在一个数组(lsa)中,然后再将该数组中的字符串显示在绘图板上。 程序如下: function member (e, ls: point): boolean; var b1, b2: boolean; begin if ls=nil then result:=false else begin b1:= equal(e, ls^.hp); b2:=member(e, ls^.tp); result:=b1 or b2; end end; 7.3.3 复制广义表 我们已经知道, 任何一个非空的广义表均可分解成表头和表尾,反之,一对确定的表头和表尾可唯一确定一个广义表。 由此可见,复制一个广义表只要分别复制其表头和表尾,然后合成即可。假设ls为原表,newls为复制表, 则复制广义表的递归过程可表示为 procedure copyls (ls: point, var newls: point); 其中,参数ls表示原表,newls表示复制表, 其类型均为结点指针类型point,该过程的功能:复制广义表ls的一个副本newls。 即生成一个ls的副本并由newls指向它。 处理过程:若ls为nil则newls也为nil, 否则,生成一个新的表结点,并按原表是单元素或列表两种情形分别处理。若原表是单元素,则复制元素值;若原表是列表,则分别复制其表头和表尾,并分别挂在新生结点的头尾指针域上。 上述复制表头并将新表头的指针挂在新生结点的头指针域上, 这一处理过程正好可通过递归调用copyls(ls^.hp, newls^.hp)来完成, 因为copyls的功能就是要按第一个参数所指向的广义表生成一个副本,并由第二个参数中的指针来指向它。同样,复制表尾并将新表尾的指针挂在新生结点的尾指针域上,这一处理过程正好可通过递归调用copyls(ls^.tp, newls^.tp)来完成。 程序如下: procedure copyls (ls: point, var newls: point); begin if ls=nil then newls:=nil else begin new(newls); newls^.tag:=ls^.tag; if ls^.tag=0 then newls^.data:=ls^.data else begin copyls(ls^.hp, newls^.hp); copyls(ls^.tp, newls^.tp) end end end; 7.3.4 求广义表的深度 广义表的深度可定义为广义表中括号的层数,是广义表的一种量度。当广义表为单元素时,其深度为0;当广义表为空表或其所有的成员均为单元素时,其深度为1;否则,广义表的深度与其成员的深度有关,它总是比成员中最大的深度还要大1。因此,我们可以采用如下的递归的形式来定义广义表ls的深度depth。 对于广义表ls=(a1, a2, …, ai, …,
您可能关注的文档
最近下载
- (完整word版)人教版四年级上册数学复习教案.doc VIP
- 煤矿安全操作规程(2023年).docx
- 工作相关肌肉骨骼疾患的工效学预防指南 第 4 部分 轨道交通设备制造作业.pdf VIP
- 园林景观工程施工计划.pdf
- OC IIS的定义(液晶玻璃的检验与不良判定).ppt VIP
- 2025届高考语文复习:文言文阅读+课件.pptx VIP
- 大班数学《坐船去探险》教案课件材料.doc VIP
- 工作相关肌肉骨骼疾患的工效学预防指南 第 6 部分 木质家具制造作业.pdf VIP
- 初中英语八年级上册首字母填空专项练习(共100题,附参考答案).doc
- 工作相关肌肉骨骼疾患的工效学预防指南 第 9 部分 公交车驾驶作业.pdf VIP
文档评论(0)