简述二叉树的常用操作及各操作的含义。
正确答案:
创建一棵空二叉树:创建一棵没有任何结点的二叉树。在顺序表示中,根据树的深度为结点分配内存;在二叉链表表示中,将指向根结点的指针赋值为NULL。
删除一棵二叉树:将二叉树各结点所占据的内存释放。
清空二叉树:将二叉树的所有结点删除,使之成为一棵空二叉树。
以指定元素值创建根结点:创建根结点,并以指定值作为根结点的元素值。
将一个结点作为指定结点的左孩子插入:根据指定元素值生成一个新结点,并将其作为指定结点的左孩子。
将一个结点作为指定结点的右孩子插入:根据指定元素值生成一个新结点,并将其作为指定结点的右孩子。
先序遍历二叉树:也称为先根遍历,其访问方式递归定义如下:对于一棵二叉树,先访问其根结点,再访问根结点的左、右子树;对于左、右子树中的结点仍然是按照先序遍历方式访问,即先访问根结点,再访问根结点的左、右子树。
中序遍历二叉树:也称为中根遍历,其访问方式递归定义如下:对于一棵二叉树,先访问根结点左子树,再访问根结点,最后访问右子树;对于左、右子树中的结点仍然是按照中序遍历方式访问。
后序遍历二叉树:也称为后根遍历,其访问方式递归定义如下:对于一棵二叉树,先访问根结点的左子树,后访问右子树,最后访问根结点;对于左、右子树中的结点仍然是按照后序遍历方式访问。
逐层遍历二叉树:从第1层开始依次对每层中的结点按照从左至右的顺序进行访问。
获取指定结点的双亲结点:根据指定结点获取其双亲结点。在顺序表示中,可以直接根据指定结点的位置计算双亲结点的位置;在二叉链表表示中,则需要从根结点开始遍历二叉树直至找到指定结点的双亲结点。
删除以指定结点为根的子树:将以指定结点为根结点的子树上的所有结点(包括指定结点)删除。
按关键字查找结点:按照某种规则(先序、中序、后序或逐层)依次访问二叉树中的每一结点,直至找到与关键字匹配的结点。
判断二叉树是否为空:判断一棵二叉树是否为空二叉树。
修改指定结点的元素值:将指定结点的元素值修改为指定值。
计算二叉树的深度:按照某种规则依次访问二叉树中的每一结点,计算各结点所在层的最大值。
计算二叉树的叶子结点数:按照某种规则依次访问二叉树中的每一结点,计算度为0的结点数。
删除一棵二叉树:将二叉树各结点所占据的内存释放。
清空二叉树:将二叉树的所有结点删除,使之成为一棵空二叉树。
以指定元素值创建根结点:创建根结点,并以指定值作为根结点的元素值。
将一个结点作为指定结点的左孩子插入:根据指定元素值生成一个新结点,并将其作为指定结点的左孩子。
将一个结点作为指定结点的右孩子插入:根据指定元素值生成一个新结点,并将其作为指定结点的右孩子。
先序遍历二叉树:也称为先根遍历,其访问方式递归定义如下:对于一棵二叉树,先访问其根结点,再访问根结点的左、右子树;对于左、右子树中的结点仍然是按照先序遍历方式访问,即先访问根结点,再访问根结点的左、右子树。
中序遍历二叉树:也称为中根遍历,其访问方式递归定义如下:对于一棵二叉树,先访问根结点左子树,再访问根结点,最后访问右子树;对于左、右子树中的结点仍然是按照中序遍历方式访问。
后序遍历二叉树:也称为后根遍历,其访问方式递归定义如下:对于一棵二叉树,先访问根结点的左子树,后访问右子树,最后访问根结点;对于左、右子树中的结点仍然是按照后序遍历方式访问。
逐层遍历二叉树:从第1层开始依次对每层中的结点按照从左至右的顺序进行访问。
获取指定结点的双亲结点:根据指定结点获取其双亲结点。在顺序表示中,可以直接根据指定结点的位置计算双亲结点的位置;在二叉链表表示中,则需要从根结点开始遍历二叉树直至找到指定结点的双亲结点。
删除以指定结点为根的子树:将以指定结点为根结点的子树上的所有结点(包括指定结点)删除。
按关键字查找结点:按照某种规则(先序、中序、后序或逐层)依次访问二叉树中的每一结点,直至找到与关键字匹配的结点。
判断二叉树是否为空:判断一棵二叉树是否为空二叉树。
修改指定结点的元素值:将指定结点的元素值修改为指定值。
计算二叉树的深度:按照某种规则依次访问二叉树中的每一结点,计算各结点所在层的最大值。
计算二叉树的叶子结点数:按照某种规则依次访问二叉树中的每一结点,计算度为0的结点数。
答案解析:有
微信扫一扫手机做题