一單項選擇題
( 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; //未找到
}
From:http://tw.wingwit.com/Article/program/sjjg/201311/23975.html