999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

無限網狀結構對拉鏈法解決地址沖突問題的優化

2014-04-29 00:00:00王俊龍杜桂萍
無線互聯科技 2014年4期

摘 要:本文提出利用無限網狀結構對拉鏈法解決地址沖突問題進行優化,通過實例證明,此法提高了拉鏈法解決散列表中存在的地址沖突問題的工作效率。

關鍵詞:散列表;沖突;拉鏈法;無線網狀結構

1 概述

散列表又稱為哈希表,是線性表中一種重要的存儲方式和檢索方法。在散列表中,可以對節點進行快速檢索。散列表算法的基本思想是:由結點的關鍵碼值決定結點的存儲地址,即以關鍵碼值k為自變量,通過一定的函數關系h(稱為散列函數),計算出對應的函數值h(k)來,將這個值解釋為結點的存儲地址,將結點存入該地址中,檢索時,根據要檢索的關鍵碼值,用同樣的散列函數計算出地址,然后,到相應的地址中去獲取所要的結點數據。因此,散列表有一個重要特征:平均檢索的長度不直接依賴于表中元素的個數。兩個不同的關鍵字,由于散列函數值相同,因而被映射到同一表位置上。該現象稱為沖突(Collision)或碰撞。發生沖突的兩個關鍵字稱為該散列函數的同義詞(Synonym)。拉鏈法是解決沖突問題的傳統方法,可拉鏈法存在一些缺點,用無限網狀結構可以解決部分問題。

2 拉鏈法解決地址沖突問題

拉鏈法解決地址沖突問題的基本思想:將所有關鍵字為同義詞的結點放在同一個連表中。若選擇的鏈表長度為m,則可將散列表定義為一由m個頭指針組成的指針數組T[0...m-1]。凡是散列地址為i的結點,均插入到以T[i]為頭指針的單鏈表中。T中個分量的初值均為空指針。

例1:已知一組數據為(26,36,41,38,44,15,68,12,06,51,06,51,),用除余法構造散列函數,用線性探測法解決沖突構造這組關鍵字的散列表

為了減少沖突通常令裝載因子小于1,這里關鍵字個數n=10,不妨設計m=13,此時裝載因子為0.77,散列表為T[0.....12],散列函數為:h(key)=key%13。由除余法的散列函數計算出的上述關鍵字的地址為(0,10,2,12,5,2,3,12,6,12),前五個關鍵字插入時,其相應的地址均為開放地址,故將它們直接插入T[0],T[10],T[2],T[12]和T[5]中,當插入第六個關鍵字15時,其散列地址為2已被關鍵字41占用。故用拉鏈法存儲15,即重新申請一個空間將15放入空間中,對12和51處理方法是一樣的。

拉鏈法的缺點:單鏈表對于同義詞的存儲沒有采用合適的算法解決,即使在單鏈表中采用了很好的算法解決存儲問題,但是若是在單鏈表中又出現沖突時問題無法解決。

3 無限網狀結構解決地址沖突問題

無限網狀結構解決地址沖突問題的基本思想:將關鍵字放在帶頭指針的數組,數組數目可以視數據量自行申請空間設置,但是所有數組結構都是一樣的。若選擇的數組的長度為m,則可將數組定義為一由m個頭指針組成的指針數組T[0...m-1],然后各各數組之間的相互連接方式,根據實際情況自行進行,所有數組中關鍵字的存儲都按照相應的散列函數來確定其在相應數組中的位置。

例2:已知一組英文單詞:zero about out great hight konw home void play int floay fabt faat fbet將這些關鍵字存入散列表中。

本例中我們用無限網狀結構來存儲,將關鍵字的值減去a的值作為其地址,不同數組散列函數不同,并且每一個備份空間,一次用其下一個字符來確定其地址,由題可知about floay great hight int know out play void zero的地址分別是0 5 6 7 8 10 14 15 21和25,但是home faat fabt fbet他們出現了地址沖突,必須進行處理,對home開創一個數組將其按照第二個字母確定其地址,對于 fabt fbet必須創建一個數組進行儲存,又因為faat和fabt關鍵字的發生了沖突,故應該在此運用拉鏈法來解決,即在申請一個數組空間來存儲該關鍵字,這些關鍵字的存儲結果結構圖如下圖:

拉鏈法和無限網狀結構的聯系:無限網狀結構是對拉鏈法的優化,它是將用拉鏈法解決沖突的散列表退化成一個數組,即無限網狀結構的一個元素,然后根據實際情況自行連接各各元素,即拉鏈法的反復應用。無限網狀結構就是將拉鏈法反復的應用在一個散列表中,很好的解決散列表中的地址沖突問題,既能夠很好的解決對于同義詞在備份空間的存儲方法問題,又能很好的解決在同義詞中又出現地址沖突問題,彌補了拉鏈法既解決不了同義詞的存儲方法問題又解決不了同義詞中出現地址沖突問題,完善了拉鏈法,是對拉鏈法的充分應用。

無限網狀結構的優點:無限網狀結構既能夠很好的解決對于同義詞在備份空間的存儲方法問題,又能很好的解決在同義詞中又出現地址沖突問題,是對拉鏈法,能夠很好的解決拉鏈法所不能解決的問題,如在例2中,在解決關鍵字沖突時,一方面在存儲關鍵字時,對同義詞關鍵字也采取了散列表存儲,提高了其查找速率,另一方面,在存儲faat時,由于其和fabt又發生了關鍵字沖突,在無限網狀結構中,采取了再次運用拉鏈法來解決同義詞沖突問題,但是若是采取拉鏈法來存儲,其則會采取如例1的方法來解決。

無限網狀結構的缺點:由于無限網狀結構沒有對關鍵字的存儲經行很好的控制,使得在無限網狀結構存儲數據時有可能造成存儲空間的浪費,在存儲空間有限或是對存儲空間要求過高時候該結構的弊端尤為突出。例如在例2 中,由于在存儲fa-at時,由于其和baft發生了同義詞沖突,如果用拉鏈法來存儲,則可以比無限網狀結構節省了單獨存儲關鍵字faat的存儲數組。

4 結論

在這里提出的無限網狀結構,可以對拉鏈法解決地址沖圖問題進行完善優化,對于拉鏈法中,無法很好的處理發生沖突的關鍵字即同義詞的存儲問題有了很好的解決,然而其在解決問題的同時也帶來了新的問題,即存儲空間的浪費,正是由于無限網狀結構的這個缺點導致其現在還無法應用,需要進行進一步研究和優化。

[參考文獻]

[1]殷人昆.教據結構(用面向對象方法與C++語言描述)[M].2版.北京:清華大學出版社,2007.

[2]克努特.蘇運霖,譯.計算機程序設計藝術(第3卷排序與查找)[M].2版.北京:國防工業出版社,2002:478.

[3]許卓群,楊冬青,唐世渭,等.數據結構與算法[M].北京:高等教育出版社,2004:306—309.

[4]徐孝凱.教據結構[M].北京:電子工業出版社,2004:271.

[5]維斯.馮舜璽,譯.數據結構與算法分析:C語言描述[M].2版.北京:機械工業出版社,2004:126.

主站蜘蛛池模板: 波多野结衣无码中文字幕在线观看一区二区 | 日韩毛片视频| 爽爽影院十八禁在线观看| 毛片免费在线视频| 麻豆精品视频在线原创| 永久成人无码激情视频免费| 女人18毛片一级毛片在线 | yy6080理论大片一级久久| 欧美激情福利| 久久精品无码专区免费| 日本欧美在线观看| 日韩av手机在线| 色综合久久88| 五月天丁香婷婷综合久久| 国产微拍一区二区三区四区| 欧洲一区二区三区无码| 亚洲精品午夜无码电影网| 免费国产黄线在线观看| 国产成人精品免费视频大全五级| 亚洲av无码片一区二区三区| 在线观看无码a∨| av手机版在线播放| 伊人久久综在合线亚洲2019| 国产成人综合亚洲网址| 国产综合精品一区二区| 亚洲午夜国产片在线观看| 亚洲狼网站狼狼鲁亚洲下载| 国产欧美亚洲精品第3页在线| 国产凹凸视频在线观看| 日韩一区二区三免费高清| 潮喷在线无码白浆| 一级高清毛片免费a级高清毛片| 日韩毛片免费| 国产麻豆永久视频| 欧美精品黑人粗大| 97超爽成人免费视频在线播放| 欧美人在线一区二区三区| 五月天丁香婷婷综合久久| 久久这里只有精品国产99| 久久综合婷婷| 综合亚洲网| 精品国产成人三级在线观看| 国产三级成人| 中文字幕在线播放不卡| 日本免费a视频| 欧美精品啪啪一区二区三区| 国产成人免费手机在线观看视频 | 亚瑟天堂久久一区二区影院| 性欧美在线| 亚洲浓毛av| 超清人妻系列无码专区| 毛片在线看网站| 亚洲国产日韩一区| 1级黄色毛片| 精品无码视频在线观看| 亚洲男女在线| 无码久看视频| 亚洲男人的天堂久久香蕉网| 91精品免费高清在线| 日本亚洲最大的色成网站www| 色哟哟国产精品一区二区| 国产精品污视频| 性色一区| 亚洲综合色婷婷中文字幕| 色综合国产| 黄色三级网站免费| 成人看片欧美一区二区| 精品一区二区三区水蜜桃| 亚洲h视频在线| аv天堂最新中文在线| 欧美激情综合| 精品99在线观看| 国产簧片免费在线播放| 色亚洲成人| 成人永久免费A∨一级在线播放| 美女啪啪无遮挡| 成人韩免费网站| 久久九九热视频| 欧美日本在线观看| 亚洲自拍另类| 日韩一级二级三级| 爆乳熟妇一区二区三区|