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.

主站蜘蛛池模板: 青青草原国产精品啪啪视频| 国产精品蜜臀| 91精品国产情侣高潮露脸| 国产精品自在拍首页视频8| 麻豆国产精品一二三在线观看| 国产在线一区视频| 国产成人艳妇AA视频在线| 69视频国产| 亚洲国产日韩欧美在线| 国产菊爆视频在线观看| av色爱 天堂网| 99久视频| 日本道综合一本久久久88| 在线五月婷婷| 久久九九热视频| 免费人成视频在线观看网站| 久久婷婷色综合老司机| 亚洲国产日韩在线成人蜜芽| 国产91精品久久| 亚洲三级色| 国产综合日韩另类一区二区| 亚洲成人动漫在线观看| 国产精品视频3p| 全免费a级毛片免费看不卡| 日韩国产精品无码一区二区三区| 国产欧美日韩免费| www.国产福利| 日韩成人在线视频| 亚洲成人网在线观看| 免费可以看的无遮挡av无码| 亚洲综合第一页| 在线看片免费人成视久网下载 | 日韩一级毛一欧美一国产 | 试看120秒男女啪啪免费| 亚洲国产综合精品中文第一| 996免费视频国产在线播放| 中文字幕啪啪| 永久免费AⅤ无码网站在线观看| 国产情侣一区二区三区| 福利在线免费视频| 国产欧美日韩在线一区| 日本欧美午夜| 日韩AV手机在线观看蜜芽| 中文字幕在线不卡视频| 啦啦啦网站在线观看a毛片| 国产精品乱偷免费视频| 99精品国产电影| 国产成人综合日韩精品无码首页| 女人18毛片水真多国产| 成人免费视频一区| 亚洲av无码成人专区| 无码av免费不卡在线观看| 91亚洲国产视频| 高清不卡一区二区三区香蕉| 制服丝袜 91视频| 久久婷婷五月综合色一区二区| 国产亚洲精品无码专| 超碰免费91| 成人一级免费视频| 亚洲国产天堂久久综合226114| 女人18毛片久久| 深夜福利视频一区二区| 日韩黄色精品| 国产成人欧美| 免费a级毛片视频| 中文字幕色在线| 国产精女同一区二区三区久| 国产精品一区不卡| 免费观看成人久久网免费观看| 波多野结衣国产精品| 久久久久久久久18禁秘| 99re精彩视频| 免费一级毛片| 亚洲一区二区日韩欧美gif| 1769国产精品视频免费观看| 国产96在线 | 青青久视频| 狠狠色综合久久狠狠色综合| 亚洲成人网在线播放| 永久在线精品免费视频观看| 日韩中文无码av超清| 国产日韩精品欧美一区灰|