解析來自某大佬
其中位置0到第乙個為空的位置4的比較次數為5,其餘的位置以此類推。 平均不成功查詢次數=(5+4+3+2+1+1+1+1+1+1+1)÷
11 = 21/11 故選d
設數字 在大小為10的雜湊表中根據雜湊函式 h(x)=x%10得到的下標對應為 。那麼繼續用雜湊函式 「h(x)=x%表長」實施再雜湊並用線性探測法解決衝突後,它們的下標變為:
(3分)
a.1, 12, 17, 0, 13, 8, 14
b.11, 3, 13, 19, 4, 0, 9
c.1, 3, 4, 9, 5, 0, 2
d.1, 12, 9, 13, 20, 19, 11
再雜湊就是,把表長變為兩倍即20,取最近的素數23。然後分別取餘就可以了,其實到第三個就可以選出答案了。試實現分離鏈結法的刪除操作函式。
函式介面定義:
bool delete
( hashtable h, elementtype key )
;
裁判測試程式樣例:typedef
struct lnode *ptrtolnode;
struct lnode
;typedef ptrtolnode position;
typedef ptrtolnode list;
typedef
struct tblnode *hashtable;
/* 雜湊表型別 */
struct tblnode
;
輸入樣例1:雜湊表如下圖#include
#include
#define keylength 15
typedef
char elementtype[keylength+1]
;typedef
int index;
/* 雜湊位址型別 */
typedef
enum
bool;
typedef
struct lnode *ptrtolnode;
struct lnode
;typedef ptrtolnode position;
typedef ptrtolnode list;
typedef
struct tblnode *hashtable;
/* 雜湊表型別 */
struct tblnode
;index hash
( elementtype key,
int tablesize )
hashtable buildtable()
;/* 裁判實現,細節不表 */
bool delete
( hashtable h, elementtype key )
;int
main()
/* 你的**將被嵌在這裡 */
able
輸出樣例1:
輸入樣例2:雜湊表如樣例1圖able is deleted from list heads[
0]
date
輸出樣例2:
error: date is not found
實現雜湊表建立及查詢演算法,雜湊函式使用除餘法,用線性探測法處理衝突。bool delete
(hashtable h,elementtype key)if(
strcmp
(p->data,key)==0
)else
return false;
}
函式介面定義:
其中void
createhash
(hashtable ht,
int n)
;//輸入不大於m的n個不為0(0表示空值)的數,用線性探查法解決衝突構造雜湊表
intsearchhash
(hashtable ht,
int key)
;//輸入乙個值key,在雜湊表中查詢key位置
ht
表示雜湊表,n
表示記錄數,key
要查詢的關鍵字
裁判測試程式樣例:
輸入樣例:#include
using namespace std;
#define m 16
#define nullkey 0
//單元為空的標記
struct hashtable
;void
createhash
(hashtable ht,
int n)
;int
searchhash
(hashtable ht,
int key)
;int
main()
/* 請在這裡填寫答案 */
輸出樣例:輸出拓撲序列。12
1914231
6820
8427
5511
1079
55
search success,the key is located in 6
void
createhash
(hashtable ht,
int n)
//輸入不大於m的n個不為0(0表示空值)的數,用線性探查法解決衝突構造雜湊表
else}}
}int
searchhash
(hashtable ht,
int key)
//輸入乙個值key,在雜湊表中查詢key位置
else}}
return-1
;}
資料結構作業4複習
定乙個順序儲存的線性表,請設計乙個函式刪除所有值大於min而且小於max的元素。刪除後表中剩餘元素保持順序儲存,並且相對位置不能改變。函式介面定義 list delete list l,elementtype mind,elementtype maxd 其中list結構定義如下 typedef in...
資料結構作業10複習
2 1 設有乙個10階的對稱矩陣a,採用壓縮儲存方式,以行序為主儲存,a11為第一元素,其儲存位址為1,每個元素佔乙個位址空間,則a85的位址為 2分 a.13 b.33 c.18 d.40 啊這考的線代吧,對稱矩陣轉為陣列儲存,第i行第j列元素位於 i i 1 2 j 注意第一元素下標 2 2 設...
資料結構與演算法作業21
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。這道題啊原本一看到,我腦中就是直接想好了暴力法 如何了。但是老師所不能用暴力法。所以我只能另尋他路。通過讀題,我們可以知道他尋找得是不包含重複字元得子串,不是子串行,所以為了由此可以想到在字串中每次第一次發現兩個相同字元時兩字元中間夾著得...