LoT ラブオンテック

非モテ男の、非モテ男による、【女の子にモテたい】非モテ男のためIT活用ブログ

プログラミング

【アルゴリズムとデータ構造】Go言語でスタックを実装する

投稿日:



Go言語でスタックを簡易実装します。

データに対する操作として、

以下の3つを実装します。



New() : スタックの初期化

Push() : 要素の追加

Pop() : 要素の取り出し



コードは以下のようになります。

例として以下の実行画面も載せます。

ちなみにscan()を抜けるとき、

スタックに要素が残っている場合は、

全て吐き出すようにしてあります。



Goだとスライスの概念があるので、

スタックの長さ事前に決める必要がないのは、

ありがたいですね!

スライスが可変長配列を実現してくれるおかげです。



しかし実際は、要素をappend()するたびに、

固定長配列が作成されなおすので、

スライスが示すアドレスも変わります。



これが意味するのは、

旧配列がゴミになるということです。

これを取り除かないとメモリを圧迫します。




とはいえ、、、

Goにはガベージコレクタが標準であるので、

ランタイムが定期的にこのゴミ掃除をしてくれます。



自分で切り出しておいて結局のところ、

メモリ解放は気にする必要はないですけどね。



上述したことをもっと詳しく知りたい方は、

こちらの記事を参考にして下さい^^

メモリとガベージコレクタについて書いてあります。




最後まで読んでいただきありがとうございました。


-プログラミング

Copyright© LoT ラブオンテック , 2020 All Rights Reserved Powered by STINGER.