2014年考研数据结构辅导(23)
关于广义表的一些递归算法 1) 求广义表的深度(最大的嵌套的括号数) 空表的深度是1,原子的深度为0,用头尾链作为存储结构 int GlistDepth(Glist L) { if(!L) return 1; else if(L->tag=ATOM) return 0; else max=0; for(pp=L;PP!=null;pp=pp->ptr.tp) { dep=GlistDepth(pp->ptr.hp); if(max } } 2)复制广义表 status copyGlist(Glist &T,Glist L)//把L复制到T { if(!L) T=null; else { if(!(T=malloc(sizeofGnode))) exit(OVERFLOW); T->tag=L->Tag; if(L->Tag=ATOM) T->atom=L->atom; else { copyGlist(T->ptr.hp,L->ptr.hp); copyGlist(T->ptr.tp,L->ptr.tp); } } return OK; } |