假设树t以孩子兄弟链表表示法为存储结构,编写一非递归算法求树中节点X的度数

假设树t以孩子兄弟链表表示法为存储结构,编写一非递归算法求树中节点X的度数
匿名用户    2015-12-25 14:22    

推荐回答

14.由孩子兄弟链表表示的药套恨树,求高度的递归模型是:若树为称脚空,高度为零;若第一子女为空,高度为1和兄弟子树的高度的大者;否则,高度为第一子女树高度加1和兄弟子树高度的大者。其非递归算法使用队列,逐层遍历树,取得树的高度。int Height(CSTree bt) //递归求以孩子兄弟链表表示的树的深度{int hc,hs; if (bt==null) return (0);elseif (!bt->firstchild) return (1+height(bt->nextsibling);//子女空,查兄弟的深度else // 结点既有第一子女又有兄弟,高度取子女高度+1和兄弟子树高度的大者夕峡{hc=height(bt->firstchild); //第一子女树高hs=height(bt->nextsibling);//兄弟树if(hc+1>hs)return(hc+1); elsereturn (hs); }}//结束heightint height(CSTree t) //非递归遍历求以孩子兄弟链表表示的树的深度{if(t==null) return(0);else{int front=1,rear=1; //front,rear是队头队尾元素的指针int last=1,h=0; //last指向树中同层结点中最后一个结点,h是树的高度Q=t; //Q是以树中结点为元素的队while(frontfirstchild) Q=t->firstchild; //第一子女入队t=t->nextsibling; //同层兄弟指针后移}if(front>last) //本层结束,深度加1(初始深度为0)h++;last=rear;} //last再移到指向当前层最右一个结}//while(front

方文林   2015-12-25 14:32
宝宝知道提示您:回答为网友贡献,仅供参考。