真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

go語言遍歷 golang遍歷

Go語言list(列表)

2021-11-10

創(chuàng)新互聯專注于雄縣企業(yè)網站建設,響應式網站開發(fā),商城網站建設。雄縣網站建設公司,為雄縣等地區(qū)提供建站服務。全流程按需定制設計,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯專業(yè)和態(tài)度為您提供的服務

列表是一種非連續(xù)的存儲容器,有多個節(jié)點組成,節(jié)點通過一些變量記錄彼此之間的關系

單鏈表和雙鏈表就是列表的兩種方法。

原理:A、B、C三個人,B懂A的電話,C懂B的電話只是單方知道號碼,這樣就形成了一個單鏈表結構。

如果C把自己的號碼給B,B把自己的號碼給A,因為是雙方都知道對方的號碼,這樣就形成了一個雙鏈表結構

如果B換號碼了,他需要通知AC,把自己的號碼刪了,這個過程就是列表的刪除操作。

在Go語言中,列表使用 container/list 包來實現,內部的實現原理是雙鏈表,列表能夠高效地進行任意位置的元素插入和刪除操作。

列表初始化的兩種辦法

列表沒有給出具體的元素類型的限制,所以列表的元素可以是任意類型的,

例如給列表中放入了一個 interface{} 類型的值,取出值后,如果要將 interface{} 轉換為其他類型將會發(fā)生宕機。

雙鏈表支持從隊列前方或后方插入元素,分別對應的方法是 PushFront 和 PushBack。

列表插入函數的返回值會提供一個 *list.Element 結構,這個結構記錄著列表元素的值以及與其他節(jié)點之間的關系等信息,從列表中刪除元素時,需要用到這個結構進行快速刪除。

遍歷完也能看到最后的結果

學習地址:

Go語言實現二叉樹遍歷

圖例如下:

結果應該是分別是:

廣度優(yōu)先: a - b - c - d - f - e - g

先序遍歷: a - b - d - e - f - g - c

中序遍歷: e - d - b - g - f - a - c

后序遍歷: e - d - g - f - b - c - a

結果存在result里面,如果不存可以少一層變量

這個地方強烈建議讀一下下面的第一個鏈接,我遵照著那篇文章實現的,只是用Go改寫了而已。

首先定義一個數據結構,用來存儲一些Node的信息。

這里是可以運行的,但是總會拋出一個數組越界的錯誤,我看了半天也沒看出來哪里有問題,Mac版的devel我這邊又有bug,沒用起來。至少思路對了,我后面再看一下哪里的問題。(感謝 @RiXu 指正)

Go中字符串的遍歷

首先說一下go中的字符串類型:

字符串就是一串固定長度的字符連接起來的字符序列。Go的字符串是由單個字節(jié)連接起來的。Go語言的字符串的字節(jié)使用UTF-8編碼標識Unicode文本。

下面介紹字符串的三種遍歷方式,根據實際情況選擇即可。

該遍歷方式==缺點==:遍歷是按照字節(jié)遍歷,因此如果有中文等非英文字符,就會出現亂碼,比如要遍歷"abc北京"這個字符串,效果如下:

可見這不是我們想要的效果,根據utf-8中文編碼規(guī)則,我們要str[3]str[4]str[5]三個字節(jié)合起來組成“北”字及 str[6]str[7]str[8]合起來組成“京”字。由此引出下面第二種遍歷方法。

該方式是按照字符遍歷的,所以不會出現亂碼,如下:

運行結果:

從圖中可以看到第二個漢子“京”的開始下標是6,直接跳過了4和5,可見確實依照utf8編碼方式將三個字節(jié)組合成了一個漢字,str[3]-str[5]組合成“北”字,str[6]-str[8]組合成了“京”字。

由于下標的不確定性,所以引出了下面的遍歷方式。

1 可以先將字符串轉成 []rune 切片

2 再用常規(guī)方法進行遍歷

運行效果:

由此可見下標是按1遞增的,沒有產生跳躍現象。

gofor遍歷會不會打亂順序

Go 語言中的 for 循環(huán)不會按照順序輸出,因為它不是一個有序的過程。for 循環(huán)采用的是“基于條件的循環(huán)”,而不是“基于步長的循環(huán)”。這意味著當條件滿足時,for 循環(huán)會執(zhí)行一次,而不是每次都按照指定的步長執(zhí)行一次。


文章名稱:go語言遍歷 golang遍歷
標題鏈接:http://weahome.cn/article/dosidse.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部