私は新しいプログラミング言語を学ぼうとしていますが、基礎から始めるより良い方法はないでしょうか。今後のこの一連の投稿では、Go を使用して単純なデータ構造とアルゴリズムを実装してみます。
書籍『CLRS によるアルゴリズム入門』の基本データ構造の章で説明されている最初のデータ構造はスタックです。
スタックは、アイテムのセットを保存するために使用される単純なデータ構造です。スタックの特性は、項目をスタックの先頭に追加したり、スタックから削除したりできるため、後入れ先出しの原則 (LIFO) に従うことです。
挿入操作はプッシュと呼ばれ、削除操作はポップと呼ばれます。空のスタックをポップしてメモリエラーに対処したくないため、スタックが空かどうかのチェックも実装します。かなりシンプルなデータ構造。
以下に、golang でのスタックの実装を示します。時間計算量は O(N)、スタックを使用する空間計算量は O(1)
package main import "fmt" type Stack []int func (stack *Stack) Push (value int){ *stack = append(*stack, value) } func (stack *Stack) Pop () int{ if stack.IsEmpty() { return 0 } top := (*stack)[len(*stack)-1] *stack = (*stack)[:len(*stack)-1] return top } func (stack *Stack) IsEmpty() bool{ return len(*stack) == 0 } func main(){ st := Stack{} st.Push(1) st.Push(2) fmt.Println(st.Pop()) }
以上がCSの基礎を学び直す - スタックの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。