![](https://lstatic.shangxueba.com/jiandati/h5/images/m_q_title.png)
假设以双亲表示法作树的存储结构,写出双亲表示的类型说明,并编写求给定的树的深度的算法。(注:已知树中结点数)【清华大学1994七(15分)】
假设以双亲表示法作树的存储结构,写出双亲表示的类型说明,并编写求给定的树的深度的算法。(注:已知树中结点数)【清华大学1994七(15分)】
二叉树以二叉链表存储,写出对二叉树进行先序遍历的非递归算法。
解题思路:二叉树的先序遍历非递归算法利用栈结构,从二又树的根结点开始,输出结点信息,同时将结点指针入栈,然后顺着左子树,依次将其左子树各个结点值输出,同时结点指针入栈,直到左子树为空;然后让栈顶指针出栈,接着处理右子树。
一棵树以孩子兄弟表示法存储,递归算法numberofleaf计算并返回根为,的树中叶子结点的个数(NULL代表空指针)。 typedef struct node{struct node*firstchild,*nextbrother;);D; int numberofleaf(JD*r) {int hum; if(r=NULL)*num=0; else if(r->firstchild==NULL) num=(1)+numberofleaf(r一>nextbrot
一棵树以孩子兄弟表示法存储,递归算法numberofleaf计算并返回根为r的树中叶结点的个数(NULL代表空指针)。 typedef struct node{ struct node * firstchild.* nextbrother; }JD; int numberofleaf(JD * r){ int num; if(r==NULL) num=0; else if(r->firstchild==NULL){ num= (1) +numberofleaf(r->nextbrother); } else{ (2) ; } return(num); }
已知一棵高度为k具有n个结点的二叉树,按顺序方式存储: (1)编写用先根遍历树中每个结点的非递归算法; (2)编写将树中最大序号叶子结点的祖先结点全部打印输出的算法。【东北大学1997六(20分)】
回指向该结点的指针。要求算法的平均时间复杂度为O(log2n)。二叉搜索树的每个结点中除data、ieftChild、rightChild等数据成员外、增加一个count成员,保存以该结点为根的子树上的结点个数。
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!