5.17在以双亲链表表示法存储结构的树中,写出以下算法: (1)求树中结点双亲的算法; (2)求树中结点孩子的算法。5.14编一算法判别给定的二叉树是否是完全二叉树。
时间: 2023-07-26 07:37:26 浏览: 163
二叉树的各种操作各种遍历,复制,求高度,判断是否为一棵完全二叉树以及计算用二叉树存储的表达式
3星 · 编辑精心推荐
算法1:求树中结点双亲
1. 输入参数:当前节点p,根节点root
2. 如果p为根节点root,则p没有双亲,返回空
3. 从root开始进行深度优先遍历,直到找到p的父节点parent
4. 返回parent作为p的双亲节点
算法2:求树中结点孩子
1. 输入参数:当前节点p
2. 如果p没有孩子节点,返回空
3. 如果p有左孩子节点,返回左孩子节点
4. 如果p没有左孩子节点,但有右孩子节点,返回右孩子节点
算法3:判断二叉树是否为完全二叉树
1. 输入参数:二叉树的根节点root
2. 开始进行层次遍历,将每个节点依次加入队列中
3. 对于队列中的每个节点p,如果p有左孩子节点但没有右孩子节点,则不是完全二叉树;如果p有右孩子节点但没有左孩子节点,则不是完全二叉树;如果p没有左孩子节点和右孩子节点,则它后面的所有节点都必须没有孩子节点,否则不是完全二叉树
4. 如果遍历完所有节点都没有发现不符合条件的节点,则是完全二叉树
阅读全文