写出在二叉排序树中删除一个结点的算法,使删除后仍为二叉排序树。设删除结点由指针p所指,其双亲结点由指针f所指,并假设被删除结点是其双亲结点的右孩子。描述上述算法。
已知二叉树排序树中某结点指针p,其双亲结点指针为fp,p为fp的左孩子。试编写算法,删除p所指结点。
以下数据结构中,( )是线性数据结构。
请编写一个判别给定二叉树是否为二叉排序树的算法,设二叉树用llink—rlink法存储。
设有一个n×n的上三角矩阵(a
ij
),将其上三角中的元素按先行后列的顺序存于数组B[m]中,使得B[k]=a
ij
且k=f
1
(i)f
2
(j)+c,请推导出函数f
1
、f
2
和常数c,要求f
1
和f
2
中不含常数项。
写出从哈希表中删除关键字为K的一个记录的算法。设哈希函数为H,解决冲突的方法为链地址法。
对一个具有7个记录的文件进行快速排序,请问: (1)在最好情况下需进行多少次比较?说明理由,并给出相应实例。 (2)在最坏情况下需进行多少次比较?为什么?请给出相应实例。
二叉树若用顺序方法存储,则下列四种算法中运算时间复杂度最小的是( )。
在线索二叉树中,结点*p没有左子树的充要条件是( )。
若对序列(tang,deng,an,wang,shi,bai,fang,liu)采用简单选择排序法按字典顺序进行排序,下面给出的四个序列中,第三趟的结果是( )。
已知有一整数序列{a
1
,a
2
,a
3
,…,a
n
}。栈A中只保存整数,即序列中元素为整数时允许其入栈。设计一个算法实现如下功能:用栈结构存储入栈的整数,当a
i
≠一1时,将a
i
进栈;当a
i
=一1时,输出栈顶整数并出栈。
如果T1是由有序树T转换而来的二叉树,那么T中结点的前序遍历序列就是T1中结点的( )遍历序列。
设有5个元素a,b,c,d,e顺序进栈,下列几个选项中,不可能的出栈序列是( )。
有n个结点的二叉树,已知叶结点个数为n。
已知一算术表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为( )。
设二叉排序树的各元素值均不相同,采用二叉链表作为存储结构,试分别设计递归和非递归算法按递减序打印所有左子树为空、右子树非空的结点的数据域的值。
已知非空链表A,其指针是list,链表中的结点由两部分组成:数据域data和指针域link。设计一个算法,将链表中数据域值最小的那个链结点移到链表的最前面,在不额外申请新的链结点的情况下,使得算法时间复杂度和空间复杂度尽可能低。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。
以下关于图的说法中正确的是( )。 I.一个有向图的邻接表和逆邻接表中的结点个数一定相等 Ⅱ.用邻接矩阵存储图,所占用的存储空间大小只与图中结点个数有关,而与图的边数无关 Ⅲ.无向图的邻接矩阵一定是对称的,有向图的邻接矩阵一定是不对称的
试找出分别满足下面条件的所有二叉树: (1)前序序列和中序序列相同。 (2)中序序列和后序序列相同。 (3)前序序列和后序序列相同。 (4)前序、中序、后序序列均相同。
已知某平衡二叉树含有在15个结点,25为其中的一个结点,如果在此平衡二叉树上查找关键字为25的结点,下列比较的次序合理的是( )。
