資料結構作業21複習

2021-10-11 22:52:41 字數 3717 閱讀 9964

解析來自某大佬

其中位置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

;

裁判測試程式樣例:

#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()

/* 你的**將被嵌在這裡 */

輸入樣例1:雜湊表如下圖

able
輸出樣例1:

able is deleted from list heads[

0]

輸入樣例2:雜湊表如樣例1圖

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

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。這道題啊原本一看到,我腦中就是直接想好了暴力法 如何了。但是老師所不能用暴力法。所以我只能另尋他路。通過讀題,我們可以知道他尋找得是不包含重複字元得子串,不是子串行,所以為了由此可以想到在字串中每次第一次發現兩個相同字元時兩字元中間夾著得...