假设二叉树采用二叉链表存储结构存储,试设计一个算法,求出该二叉树中第一条最长的路径长度以及此路径上各结点的值。

admin2013-12-31  29

问题 假设二叉树采用二叉链表存储结构存储,试设计一个算法,求出该二叉树中第一条最长的路径长度以及此路径上各结点的值。

选项

答案void Longpath(BiTree b,TElemType path[],int pathlen,TElemType longpath[],int longpathlen){ int i; if(b==NULL){ if(pathlen>longpathlen){ //若当前路径更长,将路径保存在longpath中 for(i=pathlen-1;i≥0;i--) longpath[i]=path[i]; longpathlen=pathlen: } } else{ path[pathlen]=b->data; //将当前结点放入路径中 pathlen++; //路径长度增1 Longpath(b->ichild,path,pathlen,longpath,longpathlen);//递归扫描左子树 Longpath(b->rchild,path,pathlen,longpath,longpathlen);//递归扫描右子树 pathlen--; //环境恢复 } }

解析
转载请注明原文地址:https://kaotiyun.com/show/9Sxi777K
0

最新回复(0)