今日のトピックは「スタックの基本操作(push, pop)」です。スタックは、LIFO(Last In, First Out)に基づいたデータ構造で、最後に追加された要素が最初に取り出される特性を持ちます。
スタックの基本操作である「push」と「pop」を理解することで、このデータ構造を使って効率的にデータを管理・操作できるようになります。
目次
基本概念の説明
スタック(Stack)
スタック(Stack)は、データを一方向に積み重ね、最後に追加された要素が最初に取り出されるという特性を持つデータ構造です。この操作は、LIFO(Last In, First Out)の概念に基づいています。
push操作
push操作は、スタックに新しい要素を追加する操作です。新しい要素はスタックの一番上に積み重ねられます。
pop操作
pop操作は、スタックの一番上にある要素を取り出す操作です。この操作により、スタックのサイズが1つ減少します。
各言語でのスタックの基本操作(push, pop)
Python:
# スタックの宣言と初期化
stack = []
# push操作
stack.append(1)
stack.append(2)
stack.append(3)
print(stack) # 出力: [1, 2, 3]
# pop操作
top_element = stack.pop()
print(top_element) # 出力: 3
print(stack) # 出力: [1, 2]
C#:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// スタックの宣言と初期化
Stack<int> stack = new Stack<int>();
// push操作
stack.Push(1);
stack.Push(2);
stack.Push(3);
Console.WriteLine(string.Join(", ", stack)); // 出力: 3, 2, 1
// pop操作
int topElement = stack.Pop();
Console.WriteLine(topElement); // 出力: 3
Console.WriteLine(string.Join(", ", stack)); // 出力: 2, 1
}
}
C++:
#include <iostream>
#include <stack>
int main() {
// スタックの宣言と初期化
std::stack<int> stack;
// push操作
stack.push(1);
stack.push(2);
stack.push(3);
std::cout << "スタックのトップ: " << stack.top() << std::endl; // 出力: 3
// pop操作
stack.pop();
std::cout << "pop後のスタックのトップ: " << stack.top() << std::endl; // 出力: 2
return 0;
}
Java:
import java.util.Stack;
public class Main {
public static void main(String[] args) {
// スタックの宣言と初期化
Stack<Integer> stack = new Stack<>();
// push操作
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println(stack); // 出力: [1, 2, 3]
// pop操作
int topElement = stack.pop();
System.out.println(topElement); // 出力: 3
System.out.println(stack); // 出力: [1, 2]
}
}
JavaScript:
// スタックの宣言と初期化
let stack = [];
# push操作
stack.push(1);
stack.push(2);
stack.push(3);
console.log(stack); // 出力: [1, 2, 3]
# pop操作
let topElement = stack.pop();
console.log(topElement); // 出力: 3
console.log(stack); // 出力: [1, 2]
各言語の解説
言語 | スタックの宣言と初期化方法 | push操作 | pop操作 |
---|---|---|---|
Python | stack = [] | stack.append(value) | stack.pop() |
C# | Stack<int> stack = new Stack<int>(); | stack.Push(value) | stack.Pop() |
C++ | std::stack<int> stack; | stack.push(value) | stack.pop() |
Java | Stack<Integer> stack = new Stack<>(); | stack.push(value) | stack.pop() |
JavaScript | let stack = []; | stack.push(value) | stack.pop() |
まとめ
今日はスタックの基本操作である「push」と「pop」について学びました。スタックは、LIFO(Last In, First Out)の特性を持つデータ構造であり、データの管理や操作を効率的に行うことができます。
次回は、スタックの応用例や、スタックを使用したアルゴリズムについて学び、さらに理解を深めましょう。
コメント
コメント一覧 (1件)
[…] 3-3-2. スタックの基本操作(push, pop) […]