亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Perl關聯數組創建數據結構

發布時間:2021-07-21 23:30:25 來源:億速云 閱讀:140 作者:chen 欄目:開發技術

本篇內容介紹了“怎么用Perl關聯數組創建數據結構”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

用Perl關聯數組創建數據結構

用Perl關聯數組可以模擬在其它高級語言中常見的多種數據結構,本節講述如何用之實現:鏈表、結構和樹。

1、(單)鏈表

鏈表是一種比較簡單的數據結構,可以按一定的次序存貯值。每個元素含有兩個域,一個是值,一個是引用(或稱指針),指向鏈表中下一個元素。一個特殊的頭指針指向鏈表的***個元素。
在Perl中,鏈表很容易用Perl關聯數組實現,因為一個元素的值可以作為下一個元素的索引。下例為按字母順序排列的單詞鏈表:

%words=("abel","baker",  "baker","charlie",  "charlie","delta",  "delta","");  $header="abel";

下標為delta的***一個元素的值為空串,表示鏈表的結束。在將要處理的數據個數未知或其隨程序運行而增長的情況下,鏈表十分有用。
此程序分為三個部分:

◆主程序:讀取輸入并轉換到相應的格式。
◆子程序:add_word_to_list,建立排序單詞鏈表。
◆子程序:print_list,輸出單詞鏈表

第3~17行為主程序,第4行初始化鏈表,將表頭變量$header設為空串,第5行起的循環每次讀取一行輸入,第7行去掉頭、尾的空格,第8行將句子分割成單詞。9~15行的內循環每次處理一個單詞,如果該單詞的***一個字符是標點符號,就去掉。第13行把單詞轉換成全小寫形式,第14行傳遞給子程序add_word_to_list。
子程序add_word_to_list先在第24行處檢查鏈表是否為空。如果是,第25行將單詞賦給$header,26行創建鏈表***個元素,存貯在Perl關聯數組%wordlist中。如果鏈表非空,37行檢查***個元素是否與該單詞相同,如果相同,就立刻返回。下一步檢查這一新單詞是否應該為鏈表***個元素,即其按字母順序先于$header。
如果是這樣,則:

1、創建一個新元素,下標為該新單詞,其值為原***個單詞。
2、該新單詞賦給$header。

如果該新單詞不該為***個元素,則40~44行利用局域變量$pointer尋找其合適的有效位置,41~44行循環到$wordlist{$pointer}大于或等于$word為止。接下來46行查看該單詞是否已在鏈表中,如果在就返回,否則47~48行將其添加到鏈表中。首先47行創建新元素$wordlist{$word},其值為$wordlist{$pointer},這時$wordlist{$word}和$wordlist{$pointer}指向同一個單詞。然后,48行將$wordlist{$pointer}的值賦為$word,即將$wordlist{$pointer}指向剛創建的新元素$wordlist{$word}。

***當處理完畢后,子程序print_list()依次輸出鏈表,局域變量$pointer含有正在輸出的值,$wordlist{$pointer}為下一個要輸出的值。
注:一般不需要用鏈表來做這些工作,用sort()和keys()在Perl關聯數組中循環就足夠了,如:
foreach$word(sortkeys(%wordlist)){
#printthesortedlist,orwhatever}
但是,這里涉及的指針的概念在其它數據結構中很有意義。

“怎么用Perl關聯數組創建數據結構”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宝山区| 克山县| 西青区| 博野县| 福建省| 淮安市| 高雄市| 麻江县| 美姑县| 舞阳县| 扎兰屯市| 梁河县| 西丰县| 泾阳县| 徐汇区| 普定县| 沙田区| 滦平县| 西乌珠穆沁旗| 军事| 漳州市| 济宁市| 禄丰县| 马关县| 綦江县| 郴州市| 遂川县| 海宁市| 晋中市| 乌兰县| 大足县| 宁化县| 保德县| 疏附县| 安陆市| 滨海县| 宁强县| 新乡县| 三都| 莱阳市| 宽城|