- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Q(x, y)=y3+3x2y2+1.5y+x3-4 P(x, y, z)= ((x10+ 2x8)y3+3x8 y2)z2 +(( x4+6x3) y4+2y) z = Az2+Bz = (Cy3+Dy2)z2 + (Ey4+2y) z A B C D E 5.4.4 广义表的递归算法 计算广义表的深度 广义表的复制 广义表的相等 计算广义表的深度 计算广义表的深度 int genlist :: depth ( ) //公有函数:计算一个非递归表的深度 { return depth (first) ; } 计算广义表的深度 int genlist :: depth (glnode * gl ){ //私有函数:计算非递归广义表深度 if ( gl-tlink == NULL ) return 1 ; //空表的深度为1 glnode * p = gl-tlink ; int m = 0 ; while (p-tlink!=NULL){ //扫描广义表顶层的各个结点 if (p -tag==2 ){ //递归调用求子表结点的深度 int n = depth (p-hlink) ; if (mn) m = n ; } p = p-tlink ; } return m+1 ; } 计算广义表的深度 例5-3 求如下广义表的深度。 G ( A ( a , b, c ) , B (A (a , b, c), C (u , ( x , y , z )) , D ( ) ) ) depth(G)=1+max{depth(A),depth(B)} depth(A)=1+ max{depth(a), depth (b), depth (c)}=1+0=1 depth(B)=1+max{depth(A),depth(C), depth(D)} depth(C)=1+max{depth(u),depth(( x , y , z )) } depth(D)=1 depth(u)=0 depth((x,y,z))=1+max{depth(x),depth(y),depth(z)}=1 depth(C)=1+max{depth(u),depth((x,y,z))}=1+max{0,1}=2 depth(B)=1+max{depth(A),depth(C),depth(D)}=1+max{1,2,1}=3 depth(G)=1+max{depth(A),depth(B)}=1+max{1,3}=4 广义表的复制 void genlist :: copy (const genlist ls ) //公有函数 { first = copy (ls.first); //拷贝整个表 } 广义表的复制 glnode * genlist :: copy (glnode * gl ) {//私有函数,复制一个gl指示的无共享子表的非递归表 glnode * p = NULL ; if ( gl !=NULL) { p = new glnode ; //创建一个新结点p p-tag = gl-tag ; if (gl-tag=0 ) p-ref=g1-ref; //表头结点 else if (gl-tag=1 ) p-data = gl-data ; //元素结点拷贝数据 else p-hlink = copy (gl-hlink) ; //表结点递归拷贝 p-tlink = copy (gl-tlink); //复制同一层下一个表元素 } return p ; } 广义表的复制(示例) 图5-17 表gl=((a,b), ((c,d),e))的链表结构 gl的值 递归层 gl的值 递归层 gl的值 递归层 s0 1 (- tlink) u0 4 (- tlink) NULL 7(回退) s1 2 (- hlink) u1 5 (- hlink) u2 6(回退) t0 3 (- tlink) v0 6 (- tlink) u1 5 (- tlink) t1 4 (- tlink) v1 7 (- tlink) u0 4(回退) t2 5 (- t
文档评论(0)