ホームページ  >  記事  >  バックエンド開発  >  golang での list の使い方の詳細な紹介

golang での list の使い方の詳細な紹介

PHPz
PHPzオリジナル
2023-04-25 10:43:482486ブラウズ

Go 言語は、オープンソースの高性能プログラミング言語で、主にネットワーク セキュリティ、クラウド コンピューティング、分散システムなどの分野で使用されます。 Go 言語では、リストは一般的に使用されるデータ構造であり、強力で使いやすいです。この記事では、golangにおけるlistの使い方を詳しく紹介します。

リストとは何ですか?

Go 言語では、List は二重リンク リストの実装です。任意の位置で挿入・削除操作が可能な効率的なデータ構造であり、任意の位置で挿入・削除・検索等の操作を行う機能を提供します。二重リンクリストのため、リンクリストの先頭、最後尾、途中で挿入、削除、検索などの操作が可能です。 List は、リンク リストの走査、変更、削除、追加などのさまざまな操作を提供し、Go 言語でのリンク リスト操作をより柔軟にします。

リストの作成

Go 言語では、リストを作成するには「container/list」パッケージを使用する必要があります。このパッケージには、リストの作成に特化した関数が含まれています。以下に示すように:

func New() *List

このうち、New 関数は List 型へのポインタを返します。 「list := New()」を使用して、新しいリンクされたリストを作成できます。

リンク リストを作成した後、二重リンク リストのいくつかの基本操作を使用して、リンク リスト内のデータを処理できます。以下に、一般的な操作を詳しく紹介します。

リストに要素を追加する

二重リンク リストの PushBack メソッドを使用して、リンク リストの末尾にデータを挿入します。 PushBack メソッドは、Interface{} 型の要素を受け入れます。これにより、List はあらゆる種類のデータをサポートできるようになります。

package main

import (

"container/list"
"fmt"

)

func main() {

l := list.New()
l.PushBack("hello,")
l.PushBack("go")
l.PushBack("language!")

for e := l.Front(); e != nil; e = e.Next() {
    fmt.Print(e.Value)
}

}

at上記のコードでは、New 関数を使用して新しいリンク リスト l を作成し、PushBack メソッドを使用してリンク リストにいくつかの要素を追加します。最後に、for ループを使用して、リンクされたリスト内のすべての要素を走査して出力します。

リストの先頭に要素を追加します

二重リンク リストの PushFront メソッドを使用して、リンク リストの先頭にデータを挿入します。この要素は、元の要素よりも前にランク付けされます。リンクされたリストにあります。 PushFront メソッドは、Interface{} 型の要素を受け入れます。これにより、List はあらゆる種類のデータをサポートできるようになります。

package main

import (

"container/list"
"fmt"

)

func main() {

l := list.New()
l.PushFront("language!")
l.PushFront("go")
l.PushFront("hello,")

for e := l.Front(); e != nil; e = e.Next() {
    fmt.Print(e.Value)
}

}

at上記のコードでは、PushFront メソッドを使用して、リンクされたリストの先頭に要素を挿入します。

リストへの要素の挿入

二重リンク リストの InsertBefore メソッドと InsertAfter メソッドを使用すると、指定した要素の前後に要素を挿入できます。これら 2 つのメソッドで受け入れられる最初のパラメータは挿入される要素で、2 番目のパラメータは指定された位置です。指定された位置が nil の場合、要素はリンクされたリストの最後に挿入されます。

package main

import (

"container/list"
"fmt"

)

func main() {

l := list.New()
l.PushBack("hello")
l.PushBack("go")
l.PushBack("world")

e := l.Front()
l.InsertBefore("go ", e.Next())

for e := l.Front(); e != nil; e = e.Next() {
    fmt.Print(e.Value)
}

}

at上記のコードでは、InsertBefore メソッドを使用して、指定された要素の前に要素を挿入します。

リスト内の要素を削除する

リンク リストから要素を削除するには、二重リンク リストの Remove メソッドを使用します。このメソッドは、list.Element 型の要素をパラメータとして受け取ります。要素がリンクされたリストにない場合、パニックが発生します。

package main

import (

"container/list"
"fmt"

)

func main() {

l := list.New()
l.PushBack("hello")
l.PushBack("go")
l.PushBack("world")

e := l.Front()
l.Remove(e)

for e := l.Front(); e != nil; e = e.Next() {
    fmt.Print(e.Value)
}

}

at上記のコードでは、Remove メソッドを使用してリンク リストから要素を削除します。

リストの長さを取得する

二重リンク リストの Len メソッドを使用して、リンク リストの長さを取得します。このメソッドはパラメーターを受け入れません。

package main

import (

"container/list"
"fmt"

)

func main() {

l := list.New()
l.PushBack("hello")
l.PushBack("go")
l.PushBack("world")

fmt.Printf("Length of list: %d", l.Len())

}

at上記のコードでは、Len メソッドを使用してリンクされたリストの長さを取得します。

概要

この記事の導入部を通じて、Go 言語でリスト データ構造を使用する方法を学びました。 List は一般的に使用される二重リンク リストの実装であり、任意の位置を使用して挿入、削除、検索などの操作を行う機能を提供します。これらの操作により、リンク リスト内のデータをより柔軟に処理し、さまざまなニーズの使用シナリオに対応できると同時に、プログラムのパフォーマンスと効率を向上させることができます。

以上がgolang での list の使い方の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。