ホームページ >バックエンド開発 >Golang >golangでリストを使用して合計演算を実装する方法

golangでリストを使用して合計演算を実装する方法

PHPz
PHPzオリジナル
2023-04-06 09:11:02854ブラウズ

Golang は、強力な組み込み関数とデータ構造を備えた効率的なプログラミング言語であり、その 1 つがリストです。 Golang では、リストは二重リンク リストであり、リンク リスト関連のアルゴリズムやデータ構造の問題など、多くの問題を解決するために使用できます。この記事では、リストを使用して合計演算を実装する方法を紹介します。

まず、リスト型変数を定義し、いくつかのノードを追加する必要があります。ここでは、まずリスト構造を作成します。

type ListNode struct {
  Val  int
  Next *ListNode
}

次に、この構造を使用してリストを定義します。

//创建链表
list := ListNode{0, nil}
node1 := &ListNode{1, nil}
node2 := &ListNode{2, nil}
node3 := &ListNode{3, nil}
list.Next = node1
node1.Next = node2
node2.Next = node3

さて、リストの合計演算の実装を開始できます。リンクされたリストの場合、合計はすべてのノードの値を加算することによって行われます。コードは次のとおりです。

//求和
sum := 0
for p := list; p != nil; p = p.Next {
  sum += p.Val
}
fmt.Println(sum)

このコードの意味は、リンク リストの先頭ノードから開始し、すべてのノードを走査し、ノードの値を sum 変数に累積することです。最後に、出力合計の値は、リンクされたリストの合計になります。

合計のトラバースに加えて、再帰を使用して合計演算を実装することもできます。リンク リストの場合、再帰的な合計は、現在のノードの値を後続のノードの合計に加算することによって行われます。コードは次のとおりです:

//递归求和
func sumList(list *ListNode) int {
  if list == nil {
    return 0
  }
  return list.Val + sumList(list.Next)
}

このコードの意味は、現在のノードが空の場合は 0 を返し、そうでない場合は、現在のノードの値を後続のノードの合計に加算して結果を返すことです。 。

要約すると、Golang のリストは、多くの問題を解決するために使用できる非常に便利なデータ構造です。この記事では、リストを使用して、トラバーサル合計や再帰的合計などの合計操作を実装する方法を紹介しました。この記事が読者の Golang でのリストの理解と使用に役立つことを願っています。

以上がgolangでリストを使用して合計演算を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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