答
(
T[
┌──┐
├──┤
├──┤
├──┤
├──┤
├──┤
├──┤
├──┤
├──┤
├──┤
├──┤
└──┘
(
下標
┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
T[
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
探查次數
用拉鏈法的查找成功平均查找長度為
ASLsucc=(
查找失敗時平均查找長度為
ASLunsucc=(
用線性探查法查找成功時平均查找長度為
ASLsucc=(
查找失敗時平均查找長度為
ASLunsucc=(
裝填因子α拉鏈=
答
至少要進行
也就是說
答
當α非常接近
當α比較小時
答:
typedef struct{
KeyType key
InfoType otherinfo
}NodeType
typedef NodeType SeqList[n+
int SeqSearch(Seqlist R
{ //在關鍵字遞增有序的順序表R[
//成功時返回找到的結點位置
int i
R[n]
for(i=
if (i<n&&R[i]
else return
} //SeqSearch
等概率情況下查找成功ASL=(
等概率情況下查找失敗時的ASL=(
解
int BinSearch(SeqList R
{ //在有序表R[low
int mid
if (low<=high){ //當前查找區間R[low
mid=(low+high)/
if(R[mid]
if(R[mid]
return BinSearch( R
else
return BinSearch( R
}
return
} //BinSeareh
解
由二叉排序樹的定義可得
typedef BinTNode *DataType;//循環隊列中元素為二叉樹結點指針
int BinSortStree(BinTree T)
{
CirQueue Q;
BinTNode *p;
if (!T) return
InitQueue(&Q);
EnQueue(&Q
while(!QueueEmpty(&Q))
{
p=DeQueue(&Q);
if (p
if (p
else EnQueue(&Q
if (p
if (p
else EnQueue(&Q
}
return
}
答
typedef int KeyType
typedef struct node { //結點類型
KeyType key
InfoType otherinfo
struct node *lchild
} BSTNode
typedef BSTNode *BSTree
void OUTPUTNODE(BSTree T
{//從大到小輸出二叉排序樹中所有其值不小於x的關鍵字
if (T)
{
OUTPUTNODE( T
if (T
OUTPUTNODE( T
}
}
答
#define Max l
#define Min
typedef int KeyType
typedef struct node{ //結點定義中省略了指向關鍵字代表的記錄的指針
int keynum
KeyType key[Max+
struct node *parent
struct node *son[Max+
}BTreeNode
typedef BTreeNode *BTree
void travelBtree(BTree T){
//按關鍵字遞增序輸出B
int i;
if (T){
for(i=
{
if (T
DiskRead(T
travelBtree(T
}
if (i<T
printf(
}
}
數據結構免費提供,內容來源於互聯網,本文歸原作者所有。