list是乙個雙向鍊錶。該結構具有鍊錶的所有功能。
type element
type element struct //在元素中儲存的值
}
func (e *element) next() *element //返回該元素的下乙個元素,如果沒有下乙個元素則返回nil
func (e *element) prev() *element//返回該元素的前乙個元素,如果沒有前乙個元素則返回nil。
type list
func new() *list //返回乙個初始化的list
func (l *list) back() *element //獲取list l的最後乙個元素
func (l *list) front() *element //獲取list l的第乙個元素
func (l *list) init() *list //list l初始化或者清除list l
func (l *list) insertafter(v inte***ce{}, mark *element) *element //在list l中元素mark之後插入乙個值為v的元素,並返回該元素,如果mark不是list中元素,則list不改變。
func (l *list) insertbefore(v inte***ce{}, mark *element) *element//在list l中元素mark之前插入乙個值為v的元素,並返回該元素,如果mark不是list中元素,則list不改變。
func (l *list) len() int //獲取list l的長度
func (l *list) moveafter(e, mark *element) //將元素e移動到元素mark之後,如果元素e或者mark不屬於list l,或者emark,則list l不改變。
func (l *list) movebefore(e, mark *element)//將元素e移動到元素mark之前,如果元素e或者mark不屬於list l,或者emark,則list l不改變。
func (l *list) movetoback(e *element)//將元素e移動到list l的末尾,如果e不屬於list l,則list不改變。
func (l *list) movetofront(e *element)//將元素e移動到list l的首部,如果e不屬於list l,則list不改變。
func (l *list) pushback(v inte***ce{}) *element//在list l的末尾插入值為v的元素,並返回該元素。
func (l *list) pushbacklist(other *list)//在list l的尾部插入另外乙個list,其中l和other可以相等。
func (l *list) pushfront(v inte***ce{}) *element//在list l的首部插入值為v的元素,並返回該元素。
func (l *list) pushfrontlist(other *list)//在list l的首部插入另外乙個list,其中l和other可以相等。
func (l *list) remove(e *element) inte***ce{}//如果元素e屬於list l,將其從list中刪除,並返回元素e的值。
舉例說明其用法。
package main
import (
"container/list"
"fmt"
)func main()
for e := l.front(); e != nil; e = e.next()
fmt.println("")
fmt.println(l.front().value) //輸出首部元素的值,0
fmt.println(l.back().value) //輸出尾部元素的值,4
l.insertafter(6, l.front()) //首部元素之後插入乙個值為10的元素
for e := l.front(); e != nil; e = e.next()
fmt.println("")
l.movebefore(l.front().next(), l.front()) //首部兩個元素位置互換
for e := l.front(); e != nil; e = e.next()
fmt.println("")
l.movetofront(l.back()) //將尾部元素移動到首部
for e := l.front(); e != nil; e = e.next()
fmt.println("")
l2 := list.new()
l2.pushbacklist(l) //將l中元素放在l2的末尾
for e := l2.front(); e != nil; e = e.next()
fmt.println("")
l.init() //清空l
fmt.print(l.len()) //0
for e := l.front(); e != nil; e = e.next()
}
stl中list的sort 函式解析
list不能使用stl演算法sort 必須使用自己的sort member function,因為stl演算法sort 只接受randomaccessiterator,而list提供的是 bidirectional iterators 演算法描述 templatevoid list sort tem...
Java中List的remove方法解析
1 public e remove int index 方法,它的作用是 移除此列表中指定位置上的元素,向左移動所有後續元素 將其索引減 1 其返回值是從列表中移除的元素。演示 如下 arraylistlist new arraylist list.add 小明 list.add 小花 list.a...
golang中解析yaml配置檔案
首先看乙個簡單的例子,現在我們有乙個config.yaml的配置檔案,內容為 username raily password 123a那麼我們可以像下邊這樣解析 type config struct var databaseconfig config 解析函式 func load path stri...