<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                列表是一種非連續的存儲容器,由多個節點組成,節點通過一些變量記錄彼此之間的關系,列表有多種實現方法,如單鏈表、雙鏈表等。 ## 初始化列表 list的初始化有兩種方法:兩種方法的初始化效果都是一致的。 * 使用New()函數:通過container/list包中的New()函數初始化list 變量名 := list.New() * var關鍵字聲明 var 變量名 list.List 列表與切片和map不同的是,列表沒有具體元素類型的限制,因此,列表的元素可以是任意類型,這既帶來了便利,也引來了一些問題,例如給列表中放入一個interface{}類型的值,取出值后,若要將interface{}轉換為其他類型將會發生宕機。 ## 在列表中插入元素 雙鏈表支持從隊列前方或后方插入元素,分別對應的方法是PushFront和PushBack。 提示: 這兩個方法都會返回一個*list.Element結構,若在以后的使用中需要刪除插入的元素,則只能通過*list.Element配置Remove()方法進行刪除,這種方法可以讓刪除更加效率化。同時也是雙鏈表特性之一。 | 方法 | 功能 | | --- | --- | | PushFront(v interface{}) *Element | 在鏈表的前方插入元素 | | PushBack(v interface{}) *Element | 在鏈表的后方插入元素 | | InsertBefore(v interface{}, mark *Element) *Element | 在mark點之前插入元素,mark點由其他插入函數提供 | | InsertAfter(v interface{}, mark *Element) *Element | 在mark點之后插入元素,mark點由其他插入函數提供 | | PushFrontList(other *list) | 添加other列表元素到頭部 | | PushBackList(other *list) | 添加other列表元素到尾部 | ## 列表中刪除元素 列表插入函數的返回值會提供一個*list.Element結構,這個結構記錄著列表元素的值以及其他節點之間的關系等信息,從列表中刪除元素時,需要用到這個結構進行快速刪除。 ``` package main import "container/list" func main() { l := list.New() // 尾部添加 l.PushBack("canon") // 頭部添加 l.PushFront(67) // 尾部添加之后保存元素句柄 element := l.PushBack("first") // 在first之后添加high l.InsertAfter("high", element) // 在first之前添加noon l.InsertBefore("noon", element) // 刪除 l.Remove(element) } ``` ## 遍歷列表,訪問列表的每一個元素 遍歷雙鏈表需要配置Front()函數獲取頭元素,遍歷時只要元素不為空就可以繼續進行,每次遍歷都會調用元素的Next()函數,代碼如下: ``` package main import ( "container/list" "fmt" ) func main() { l := list.New() // 尾部添加 l.PushBack("canon") // 頭部添加 l.PushFront(67) for item := l.Front(); item != nill; item = item.Next() { fmt.Println(item.Value) } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看