忍者ブログ
バイオインフォマティックス技術者試験、情報処理試験など、IT系の試験を基礎から勉強します。また、Javaなどプログラミングを勉強します。

【BI技術者認定試験対策】データ構造の基本「スタック」を攻略!PushとPopの違いを整理

アルゴリズムやプログラミングの基礎となる「データ構造」。その中でも、後入れ先出し(LIFO)の構造を持つ「スタック」は、バイオインフォマティクスの配列解析や再帰的な計算でも頻繁に登場する重要な概念です。今回は、その基本操作を確実に覚えましょう。

1. 問題:スタックへの操作

【 問題 】 データ構造の一つである「スタック(stack)」において、新しいオブジェクトをデータ構造の末尾に追加する操作を何と呼ぶでしょうか?

① プッシュ(Push)   ② ポップ(Pop)   ③ プット(Put)   ④ ゲット(Get)

2. 正解:スタック操作の正解

正解: ① プッシュ(Push)

3. 解説:スタック(積まれた本)の世界

スタックの挙動を理解するコツは、机の上に積み上げられた「本」をイメージすることです。


[ スタックの基本(LIFO) ]

最後に積んだものが、最初に取り出される「後入れ先出し」の世界です。

(Last-In, First-Out)


[ 用語の整理 ]

プッシュ(Push):データをスタックの最上部に追加(積む)する操作。

ポップ(Pop):スタックの最上部からデータを取り除く操作。



[ 消去法での確認 ]

・プット(Put)やゲット(Get)は一般的な値の代入や取得を指します。

・ホップ(Hop)はネットワーク等で使われる別分野の用語です。

1. データ構造の特定: 今回のテーマであるスタックは、一番上(末尾)に対してのみ操作を行うデータ構造です。

2. 動作の暗記: 本を一番上に「押し込む」からプッシュ、一番上が「ポンと飛び出す」からポップ、とイメージで結びつけると忘れません。


4. まとめ

「スタック=プッシュして積む、ポップして出す」というセットを反射的に思い出せるようにしましょう。キュー(Queue)の「エンキュー/デキュー」と混同しやすいポイントなので、まずはこのスタックの動作を完璧にマスターするのが、データ構造攻略の第一歩です!



PR

【Java Mac環境構築】IntelliJ IDEAでJava開発をスタート:JDKの選択で躓いた経験と解決策

1. 導入:なぜIntelliJ IDEAを選んだのか

プロのJavaエンジニアの間で圧倒的なシェアを誇るIDE(統合開発環境)、それが「IntelliJ IDEA」です。Eclipseなど他の選択肢もありますが、今回はその強力な補完機能とモダンな操作性を探求するため、MacにCommunity Editionを導入してみました。

2. インストールはシンプル:ドラッグ&ドロップの世界

1.公式サイトからMac用の**.dmg**ファイルをダウンロード。

2.Applicationsフォルダへドラッグ&ドロップ。 Macらしい直感的なインストールで、ここまでは順調でした。

3. プロジェクト作成と「JDK」の罠

新規プロジェクト作成時、一つの壁にぶつかりました。

発生したトラブル: すでにMacにインストールされていたJDKを指定したところ、なぜかプロジェクトのビルドがうまくいきませんでした。

解決策: 悩んだ末、IntelliJの機能にある**「Download JDK...」**から「Oracle OpenJDK」を直接ダウンロードして設定し直したところ、嘘のようにスムーズに解決しました。

プロの現場でも「環境変数」や「パス」の不一致でハマることは多いと聞きます。IDEが推奨するクリーンな設定をそのまま受け入れる柔軟さも、時には必要だと学びました。

4. Java 21以降のモダンな「Hello World」に挑戦

今回は、最新のJavaで導入された「簡易メインメソッド(Unnamed Classes and Instance Main Methods)」のスタイルを意識してコードを書きました。


【検証したコード】

Java
void main() {

    IO.println(String.format("Hello World!!"));

}

従来の public static void main(String[] args) というおまじないを省略できるこの書き方は、初心者にもプロの素早い検証にも非常に有用だと感じます。

5. 実行結果と今後の展望

実行ボタン(▶)一つでコンソールに Hello World!! と出力された瞬間、自分だけの開発環境が整った実感が湧きました。

今後は、先に導入した「H2 Database」とこの「IntelliJ」を連携させ、実際のアプリケーション開発へ一歩踏み出してみたいと思います。