对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是( )。
证明:具有n个顶点和多于n一1条边的无向连通图G一定不是树。
关于图(Graph)的一些问题: (1)有n个顶点的有向强连通图最多有多少条边?最少有多少条边? (2)表示有1000个顶点、1000条边的有向图的邻接矩阵有多少个矩阵元素?是否为稀疏矩阵?
假设一个仅包含二元运算符的算术表达式以链表形式存储在二叉树BT中,写出计算该算术表达式值的算法。
假设以I和O分别表示入栈和出栈操作,则对初态和终态均为空的栈操作可由I和O组成的序列表示。
设森林F对应的二叉树为B,它有m个结点,B的根为P,P的右子树结点个数为n,森林F中第一棵树的结点个数是( )。
已知一个二叉树,用二叉链表形式存储,给出此二叉树建立过程算法(可不描述结构体)。
二叉查找树的查找效率,在( )时其查找效率最低。
带权有向图G用邻接矩阵A存储,则顶点i的入度等于A中( )。
线性表(a
1
,a
2
,a
3
,…,a
n
)中元素递增有序且按顺序存储于计算机内。要求设计算法完成以下内容:
(1)用最少的时间在表中查找数值为x的元素。
(2)若找到将其与后继元素位置相交换。
(3)若找不到将其插入表中并使表中元素仍递增有序。
证明:对有向图的顶点适当地编号,可使其邻接矩阵为下三角形且主对角线为全0的充要条件是该图为无环图。
下面函数的功能是实现分块查找,空白处应该添加的内容是( )。
int BlkSearch(int*nz,int key,int block,int BLK,int len)
{
int i;
block=block—1:
if(lenlen)BLK=len;
for(i=block*BLK;i<(block+1)*BLK&&nz[i]!=0;i++)
{
if(______)
{
printf(”找到第%d个数是%d\n”,i,key);
return 0;
}
}
printf(”\n”):
printf(”查找结束\n”);
return 0;
}
已知一棵二叉树,共有n个结点,那么此二叉树的高度为( )。
已知一棵满二叉树的结点个数为20到40之间的素数,此二叉树的叶子结点有( )个。
无向图G有23条边,度为4的顶点有5个,度为3的顶点有4个,其余都是度为2的顶点,则图G最多有( )个顶点。
设有5个元素a,b,c,d,e顺序进栈,下列几个选项中,不可能的出栈序列是( )。
在有n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为( )。
“破圈法”是“任取一圈,去掉圈上权最大的边”,反复执行这一步骤,直到没有圈为止。请给出用“破圈法”求解给定的带权连通无向图的一棵最小代价生成树的详细算法,并用程序实现你所给出的算法。(注意:圈就是回路)
在单链表中,每个结点含有5个正整型的数据元素(若最后一个结点的数据元素不满5个,以值0充),试编写一算法查找值为n(n>0)的数据元素所在的结点指针以及在该结点中的序号,若链表中不存在该数据元素则返回空指针。
m阶B-树是一棵( )。
