Go言語での単連結リストの実装方法をゼロから学ぼう
データ構造やアルゴリズムを学ぶ上で、単連結リストは基本的かつ重要なデータ構造の一つです。 。この記事では、Go 言語を使用して単一リンク リストを実装する方法を紹介し、具体的なコード例を通じて読者がこのデータ構造をより深く理解できるようにします。
単一リンク リストは、一連のノードで構成される線形データ構造です。各ノードにはデータと次のノードへのポインタが含まれています。最後のノードのポインタは null を指しています。
単一リンク リストは通常、挿入、削除、検索などのいくつかの基本操作をサポートします。ここで、これらの操作を段階的に実装していきます。
まず、単一リンク リストのノード構造を定義する必要があります。
type Node struct { データ インターフェース{} 次の *ノード }
上記の構造では、data
フィールドはノードのデータを格納するために使用され、next
フィールドは次のノードへのポインターです。
次に、単一リンク リストを表す LinkedList
構造を定義し、いくつかの基本的な操作メソッドを提供する必要があります。タイプ LinkedList struct {
ヘッド・ノード
}
func NewLinkedList() *LinkedList {
&LinkedList を返す{}
}
Insert node
func (list *LinkedList) Insert(データ インターフェース{}) { newNode := &Node{データ: データ} if list.head == nil { list.head = 新しいノード } それ以外 { newNode.next = list.head list.head = 新しいノード } }
ノードの削除
func (list *LinkedList) Delete(data Interface{}) { if list.head == nil { 戻る } if list.head.data == データ { list.head = list.head.next 戻る } 前 := リスト.ヘッド 現在の := list.head.next 現在の != nil { if current.data == データ { 前.次 = 現在.次 戻る } 前 = 現在 現在 = 現在.次 } }
ノードの検索
func (list *LinkedList) Search(データ インターフェース{}) bool { 現在の := リスト.ヘッド 現在の != nil { if current.data == データ { trueを返す } 現在 = 現在.次 } falseを返す }
完全な例
パッケージメイン 「fmt」をインポートします タイプ ノード構造体 { データ インターフェース{} 次の *ノード } タイプ LinkedList struct { ヘッド・ノード } func NewLinkedList() *LinkedList { &LinkedList を返す{} } func (list *LinkedList) Insert(データ インターフェース{}) { newNode := &Node{データ: データ} if list.head == nil { list.head = 新しいノード } それ以外 { newNode.next = list.head list.head = 新しいノード } } func (list *LinkedList) Delete(データ インターフェース{}) { if list.head == nil { 戻る } if list.head.data == データ { list.head = list.head.next 戻る } 前 := リスト.ヘッド 現在の := list.head.next 現在の != nil { if current.data == データ { 前.次 = 現在.次 戻る } 前 = 現在 現在 = 現在.次 } } func (list *LinkedList) Search(データ インターフェース{}) bool { 現在の := リスト.ヘッド 現在の != nil { if current.data == データ { trueを返す } 現在 = 現在.次 } falseを返す } 関数 main() { リスト := NewLinkedList() リスト.挿入(1) リスト.挿入(2) リスト.挿入(3) fmt.Println(list.Search(2)) // 出力: true リストの削除(2) fmt.Println(list.Search(2)) // 出力: false }
# 上のコード例を通じて、Go を使用して単一テーブルの基本的な操作をどのように実行するかを理解しました。データ構造と関連する計算法は、コンピュータ科学の理解と応用をさらに深めます。
以上がGo 言語で単一リンクリストを一から実装する方法を学ぶの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。