精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MASS競猜幸運(yùn)哈希游戲系統(tǒng)開發(fā)中沖突的解決方法

開發(fā)丨KFZ433 ? 來源:開發(fā)丨KFZ433 ? 作者:開發(fā)丨KFZ433 ? 2022-06-29 16:51 ? 次閱讀

3.2 鏈地址法

鏈地址法就是將相應(yīng)位置上沖突的所有關(guān)鍵詞存儲(chǔ)在同一個(gè)單鏈表中。

設(shè)關(guān)鍵字序列為 47 , 7 , 29 , 11 , 16 , 92 , 22 , 8 , 3 , 50 , 37 , 89 , 94 , 21 47, 7, 29, 11, 16, 92, 22, 8, 3, 50, 37, 89, 94, 2147,7,29,11,16,92,22,8,3,50,37,89,94,21,散列函數(shù)取為h ( k e y ) = k e y m o d ?? 11 h(key) = key \mod 11h(key)=keymod11,用分離鏈接法處理沖突。

pYYBAGK8EYuAM8EkAAO9Y8tZolU243.png

表中有9個(gè)結(jié)點(diǎn)只需1次查找,5個(gè)結(jié)點(diǎn)需要2次查找,所以查找成功的平均查找次數(shù)為:

A S L s = ( 9 + 5 ? 2 ) / 14 ≈ 1.36

參考代碼:

#include

#include

#include

#include

#include

using namespace std;

#define MAXTABLESIZE 10000 //允許開辟的最大散列表長度

#define KEYLENGTH 100 //關(guān)鍵字的最大長度

typedef int ElementType;

struct LNode

{

ElementType data;
LNode *next;

};

typedef LNode *PtrToNode;

typedef PtrToNode LinkList;

struct TblNode

{

int tablesize;  //表的最大長度
LinkList heads; //存放散列單元數(shù)據(jù)的數(shù)組

};

typedef struct TblNode *HashTable;

/返回大于n且不超過MAXTABLESIZE的最小素?cái)?shù)/

int NextPrime(int n)

{

int p = (n % 2) ? n + 2 : n + 1; //從大于n的下一個(gè)奇數(shù)開始
int i;
while (p <= MAXTABLESIZE)
{
    for (i = (int)sqrt(p); i > 2; i--)
    {
        if ((p % i) == 0)
            break;
    }
    if (i == 2)
        break; //說明是素?cái)?shù),結(jié)束
    else
        p += 2;
}
return p;

}

/創(chuàng)建新的哈希表/

HashTable CreateTable(int table_size)

{

HashTable h = (HashTable)malloc(sizeof(TblNode));
h->tablesize = NextPrime(table_size);
h->heads = (LinkList)malloc(h->tablesize * sizeof(LNode));
//初始化表頭結(jié)點(diǎn)
for (int i = 0; i < h->tablesize; i++)
{
    h->heads[i].next = NULL;
}
return h;

}

/查找數(shù)據(jù)的初始位置/

int Hash(ElementType key, int n)

{

//這里只針對(duì)大小寫
return key % 11;

}

/查找元素位置/

LinkList Find(HashTable h, ElementType key)

{

int pos;
pos = Hash(key, h->tablesize); //初始散列位置
LinkList p = h->heads[pos].next; //從鏈表的第一個(gè)節(jié)點(diǎn)開始
while (p && key != p->data)
{
    p = p->next;
}
return p;

}

/插入新的元素/

bool Insert(HashTable h, ElementType key)

{

LinkList p = Find(h, key); //先查找key是否存在
if (!p)
{
    //關(guān)鍵詞未找到,可以插入
    LinkList new_cell = (LinkList)malloc(sizeof(LNode));
    new_cell->data = key;
    int pos = Hash(key, h->tablesize);
    new_cell->next = h->heads[pos].next;
    h->heads[pos].next = new_cell;
    return true;
}
else
{
    cout << "鍵值已存在!" << endl;
    return false;
}

}

/銷毀鏈表/

void DestroyTable(HashTable h)

{

int i;
LinkList p, tmp;
//釋放每個(gè)節(jié)點(diǎn)
for (i = 0; i < h->tablesize; i++)
{
    p = h->heads[i].next;
    while (p)
    {
        tmp = p->next;
        free(p);
        p = tmp;
    }
}
free(h->heads);
free(h);

}

int main(int argc, char const *argv[])

{

int a[] = {47, 7, 29,29, 11, 16, 92, 22, 8, 3, 50, 37, 89, 94, 21};
int n = 15;
HashTable h = CreateTable(n);
for (int i = 0; i < n; i++)
{
    Insert(h, a[i]); //插入元素
}
for (int i = 0; i < h->tablesize; i++)
{
    LinkList p = h->heads[i].next;
    while (p)
    {
        cout << p->data << " "; //打印哈希表元素
        p = p->next;
    }
    cout << endl;
}
return 0;

}

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4750

    瀏覽量

    68357
  • 哈希函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    43

    瀏覽量

    9440
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    以太網(wǎng)組網(wǎng)常見故障及解決方法

    相互通信。 解決方法: 檢查網(wǎng)線是否損壞,使用網(wǎng)線測試儀進(jìn)行測試。 確保網(wǎng)線插頭(RJ45)插入到位,沒有松動(dòng)。 更換網(wǎng)線或接口,排除物理損壞的可能性。 檢查交換機(jī)和路由器的端口狀態(tài),確保它們正常工作。 2. IP地址沖突 故障現(xiàn)象: 網(wǎng)絡(luò)
    的頭像 發(fā)表于 11-08 09:13 ?262次閱讀

    單片機(jī)調(diào)試常見問題與解決方法

    單片機(jī)調(diào)試是嵌入式系統(tǒng)開發(fā)的一個(gè)重要環(huán)節(jié),它涉及到對(duì)單片機(jī)程序的測試和優(yōu)化,以確保系統(tǒng)能夠正常工作。在調(diào)試過程開發(fā)者可能會(huì)遇到各種問題
    的頭像 發(fā)表于 11-01 14:11 ?297次閱讀

    常見GPU問題及解決方法

    各種問題。以下是一些常見的GPU問題及其解決方法: GPU驅(qū)動(dòng)程序過時(shí)或不兼容 問題描述:GPU驅(qū)動(dòng)程序是GPU與操作系統(tǒng)之間的橋梁,負(fù)責(zé)將操作系統(tǒng)的指令轉(zhuǎn)換為GPU可以理解的指令。如果驅(qū)動(dòng)程序過時(shí)或不兼容,可能會(huì)導(dǎo)致GPU性能
    的頭像 發(fā)表于 10-27 14:12 ?708次閱讀

    ChatGPT 在游戲開發(fā)的創(chuàng)新應(yīng)用

    游戲開發(fā)領(lǐng)域,人工智能技術(shù)的應(yīng)用正變得越來越廣泛。ChatGPT,作為一種先進(jìn)的自然語言處理(NLP)模型,為游戲開發(fā)帶來了許多創(chuàng)新的應(yīng)用。 1. 動(dòng)態(tài)對(duì)話
    的頭像 發(fā)表于 10-25 18:05 ?562次閱讀

    pcb設(shè)計(jì)遇到的常見問題及解決方法

    電氣或機(jī)械規(guī)范。 解決方法 : 確保所有設(shè)計(jì)元素(如焊盤、孔徑、走線寬度和間距)符合IPC標(biāo)準(zhǔn)。 使用自動(dòng)化設(shè)計(jì)規(guī)則檢查(DRC)工具來識(shí)別和修正問題。 2. 材料選擇問題 問題 :選擇了不適合應(yīng)用的材料。 解決方法 : 根據(jù)應(yīng)用需求(如溫度
    的頭像 發(fā)表于 09-02 14:53 ?1437次閱讀

    IP地址沖突解決方法圖示

    ! 那么,什么是 IP 地址沖突呢?其實(shí)很簡單,就是在同一個(gè)網(wǎng)絡(luò),有兩個(gè)或多個(gè)設(shè)備被分配了相同的 IP 地址,那么在來兩方同時(shí)使用的時(shí)候,就像真假獼猴一樣,必然是要打架的。 那如果遇到 IP 地址沖突,我們該如何做呢?其實(shí)也很
    的頭像 發(fā)表于 07-26 11:51 ?399次閱讀

    CMM三坐標(biāo)測量機(jī)MASS多測頭系統(tǒng)

    在精密測量領(lǐng)域,技術(shù)的每一次革新都代表著對(duì)更高精度、更廣應(yīng)用領(lǐng)域的追求。蔡司代理三本精密儀器小編介紹蔡司三坐標(biāo)測量儀MASS多測頭系統(tǒng),無疑是這一追求下的杰出代表。該系統(tǒng)憑借其獨(dú)特的設(shè)計(jì)理念和先進(jìn)
    的頭像 發(fā)表于 07-08 17:16 ?335次閱讀
    CMM三坐標(biāo)測量機(jī)<b class='flag-5'>MASS</b>多測頭<b class='flag-5'>系統(tǒng)</b>

    接地網(wǎng)阻值偏大的原因及解決方法

     地網(wǎng)接地電阻測試儀是保障電氣設(shè)備安全運(yùn)行的重要組成部分,但在實(shí)際使用,我們可能會(huì)遇到接地網(wǎng)阻值偏大的情況。接下來,鴻蒙小小編介紹造成這種情況的原因,并提供一些解決方法。   1、接地體積不足
    發(fā)表于 06-17 09:19

    鴻蒙OpenHarmony:【常見編譯問題和解決方法

    常見編譯問題和解決方法
    的頭像 發(fā)表于 05-11 16:09 ?1991次閱讀

    EMI電磁干擾:原理、影響及解決方法詳解?

    EMI電磁干擾:原理、影響及解決方法詳解?|深圳比創(chuàng)達(dá)電子
    的頭像 發(fā)表于 03-21 10:02 ?837次閱讀
    EMI電磁干擾:原理、影響及<b class='flag-5'>解決方法</b>詳解?

    局域網(wǎng)IP地址沖突、環(huán)路的罪魁禍?zhǔn)资鞘裁矗?/a>

    、影響以及解決方法。 一、局域網(wǎng)IP地址沖突 局域網(wǎng)IP地址沖突指的是在同一個(gè)局域網(wǎng),多個(gè)設(shè)備使用了相同的IP地址,這會(huì)導(dǎo)致通信混亂和網(wǎng)絡(luò)故障。常見的原因包括以下幾種: 1. 手動(dòng)設(shè)
    的頭像 發(fā)表于 02-04 11:03 ?4071次閱讀

    液壓系統(tǒng)由哪幾部分組成 液壓系統(tǒng)常見故障及解決方法

    負(fù)責(zé)完成系統(tǒng)的工作任務(wù),油箱用于儲(chǔ)存液壓液,管路則連接各個(gè)部件。 液壓系統(tǒng)常見的故障及解決方法如下: 泄漏問題:液壓系統(tǒng)的泄漏可以是液壓油
    的頭像 發(fā)表于 02-03 10:28 ?1109次閱讀

    小區(qū)門禁系統(tǒng)常見故障及解決方法

    小區(qū)門禁系統(tǒng)是保障小區(qū)安全的重要設(shè)備,但常常會(huì)遇到各種故障。本文將從硬件故障、軟件故障及其他常見故障三個(gè)方面介紹小區(qū)門禁系統(tǒng)的常見故障及解決方法。 硬件故障是小區(qū)門禁系統(tǒng)常見的問題之一
    的頭像 發(fā)表于 02-02 11:00 ?2768次閱讀

    康謀方案 | 加速自動(dòng)駕駛系統(tǒng)開發(fā)的技術(shù)解決方案

    過程。 ADTF 能在 Windows、Linux 和 ARM 環(huán)境運(yùn)行配置。它可以實(shí)時(shí)同步處理多個(gè)傳感器數(shù)據(jù)流。集成的測試環(huán)境,使得在開發(fā)平臺(tái)中編程的駕駛員輔助和安全功能可以很容易地可視化并進(jìn)行虛擬測試。 ADTF作為自動(dòng)駕駛系統(tǒng)開
    的頭像 發(fā)表于 01-19 15:57 ?381次閱讀
    康謀方案 | 加速自動(dòng)駕駛<b class='flag-5'>系統(tǒng)開發(fā)</b>的技術(shù)解決方案

    PCB壓合問題解決方法

    PCB壓合問題解決方法
    的頭像 發(fā)表于 01-05 10:32 ?1008次閱讀