golangでスタックを使って配列要素を逆にする方法は?

配列の要素を反転させるには、スタックを使用する必要があります。 次の手順に従うことができます。

  1. 配列要素を保存するためのスタック構造を作成します。
  2. 配列を走査し、各要素を順番にスタックにプッシュします。
  3. 逆置した要素を格納するための新しい配列を作成します。
  4. スタックから要素を1つずつ取り出し、新しい配列に追加します。
  5. 逆順に並べ替えた結果を新しい配列として返す。

こちらは実装例のコードです:

package main

import (
	"fmt"
)

type Stack struct {
	data []int
}

func (s *Stack) push(val int) {
	s.data = append(s.data, val)
}

func (s *Stack) pop() int {
	if len(s.data) == 0 {
		return 0
	}
	val := s.data[len(s.data)-1]
	s.data = s.data[:len(s.data)-1]
	return val
}

func reverseArray(arr []int) []int {
	stack := Stack{}
	for _, val := range arr {
		stack.push(val)
	}

	var reversed []int
	for len(stack.data) > 0 {
		reversed = append(reversed, stack.pop())
	}

	return reversed
}

func main() {
	arr := []int{1, 2, 3, 4, 5}
	reversed := reverseArray(arr)
	fmt.Println(reversed)
}

上記の例では、私たちはスタックの操作を実現するためにStack構造体を定義しました。次に、reverseArray関数を使用して配列要素を逆転させます。reverseArray関数を呼び出し、配列パラメータを渡すことで、逆転した結果が得られます。

bannerAds