一单项选择题
( B )
( D )
( A)
( A )
( D)
( C )
( C )
( A )
( B )
( A)
( B )
( D )
( C )
( B )
( C)
二填空题(本大题共小题每空分共分)
存储结构
q = p>pre;
q>pre>next = p;
p>pre = q>pre;
free( q );
栈空
DEFG //注意双引号不能少
表尾
2^(I)+M/ 叶子结点.
入度
基数
同义词
已有m个同义词记录
三解答题(本大题共小题每小题分共分)
() quelen == m
() quelen ==
() ( + ) % =
() ( rear quelen + m ) % m
B
/ \
A F
/ \
E G
/
C
\
D
个: a bcedfg
我们知道对n个关键自序列进行一趟快速排序要进行n次比较
也就是基准和其他n个关键字比较
这里要求次而 + * ( ) = 这就要求趟快速排序后算法结束
所以列举出来的序列要求在做partition的时候正好将序列平分
()
或
或
或
()自己列吧 :)
四算法阅读题(本大题共小题每小题分共分)
() L=()
() L=()
() 在顺序表L中查找数x
找到则删除x
没找到则在适当的位置插入x插入后L依然有序
() FALSE //初始化为未访问
() DSFTree( G p>adjvex ); //从相邻结点往下继续深度搜索
() p = p>next; //下一个未访问的相邻结点
() L = { };
()次
() NULL //初始化
() p>next = H[ j ] //和下面一句完成头插法
() p = q; //继续遍历L
五算法设计题(本大题分)
)
a)*px 有右孩子则其右孩子为其中序序列中的后继
b)*px 无右孩子从*px开始回溯其祖先结点找到第个身份为左孩子的结点
找到则该结点的父结点为*px的中序序列中的后继找不到则无后继
)
BinTNode * fintNext( BinTNode * px )
{
if( px> rchild ) return px>rchild; //*px 有右孩子
BinTNode *q *qp;
q = px;
while( qp = q>parent ){ //未回溯到根结点
if( qp>lchild == q ) return qp; //找到)b)所述结点
q = qp; //往上回溯
}
return NULL; //未找到
}