试题详情
- 简答题简述二叉树的常用操作及各操作的含义。
-
创建一棵空二叉树:创建一棵没有任何结点的二叉树。在顺序表示中,根据树的深度为结点分配内存;在二叉链表表示中,将指向根结点的指针赋值为NULL。
删除一棵二叉树:将二叉树各结点所占据的内存释放。
清空二叉树:将二叉树的所有结点删除,使之成为一棵空二叉树。
以指定元素值创建根结点:创建根结点,并以指定值作为根结点的元素值。
将一个结点作为指定结点的左孩子插入:根据指定元素值生成一个新结点,并将其作为指定结点的左孩子。
将一个结点作为指定结点的右孩子插入:根据指定元素值生成一个新结点,并将其作为指定结点的右孩子。
先序遍历二叉树:也称为先根遍历,其访问方式递归定义如下:对于一棵二叉树,先访问其根结点,再访问根结点的左、右子树;对于左、右子树中的结点仍然是按照先序遍历方式访问,即先访问根结点,再访问根结点的左、右子树。
中序遍历二叉树:也称为中根遍历,其访问方式递归定义如下:对于一棵二叉树,先访问根结点左子树,再访问根结点,最后访问右子树;对于左、右子树中的结点仍然是按照中序遍历方式访问。
后序遍历二叉树:也称为后根遍历,其访问方式递归定义如下:对于一棵二叉树,先访问根结点的左子树,后访问右子树,最后访问根结点;对于左、右子树中的结点仍然是按照后序遍历方式访问。
逐层遍历二叉树:从第1层开始依次对每层中的结点按照从左至右的顺序进行访问。
获取指定结点的双亲结点:根据指定结点获取其双亲结点。在顺序表示中,可以直接根据指定结点的位置计算双亲结点的位置;在二叉链表表示中,则需要从根结点开始遍历二叉树直至找到指定结点的双亲结点。
删除以指定结点为根的子树:将以指定结点为根结点的子树上的所有结点(包括指定结点)删除。
按关键字查找结点:按照某种规则(先序、中序、后序或逐层)依次访问二叉树中的每一结点,直至找到与关键字匹配的结点。
判断二叉树是否为空:判断一棵二叉树是否为空二叉树。
修改指定结点的元素值:将指定结点的元素值修改为指定值。
计算二叉树的深度:按照某种规则依次访问二叉树中的每一结点,计算各结点所在层的最大值。
计算二叉树的叶子结点数:按照某种规则依次访问二叉树中的每一结点,计算度为0的结点数。 关注下方微信公众号,在线模考后查看
热门试题
- 一个算法具有5个特性()、()、()有零
- 下面计算正确的叙述是()
- 下述编码中哪一个不是前缀编码()
- 依次插入序列(50,72,43,85,7
- 线性表、栈和队列都是()结构,可以在线性
- 栈和链表是两种不同的数据结构。
- 对数列(25,84,21,47,15,2
- 对于任意一个图,从它的某个结点进行一次深
- 队的插入操作在()进行。
- 序列14,12,15,13,18,16,
- 线性表的顺序存储比链接存储最有利于进行(
- 假设以带头结点的循环链表表示队列,并且只
- 对图所示的无向图,依次输入各边:(v1,
- 在一个长度为n的顺序表中删除第i个元素,
- 评价排序算法优劣的主要标准是()和()
- 链表的指针域可以有()。
- 已知序列(503,87,512,61,9
- 一个广义表为(a,(a,b),d,e,(
- 画出用普里姆算法构造下面所示带权无向图
- 用二分(对半)查找表的元素的速度比用顺序