LinkedListの内部構造と双方向連結リスト実装

java.util.LinkedList は、List、Deque、Queue の各インタフェースを実装する双方向連結リストです。これにより、リスト操作だけでなく、キュー・スタック・デックとしても利用可能です。 継承関係 public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable 主要 ...

7月22日 17:23 投稿

Pythonマルチプロセスにおける排他制御とプロセス間通信の実装

複数のプロセスが同時に共有リソース(ファイル、データベースなど)を操作すると、競合状態が発生し、データの整合性が崩れる可能性があります。これを防ぐために排他ロック(Mutex)を使用し、特定の処理を逐次的に実行させることが有効です。 排他ロックの実装例 import os import json import time import random from multiprocessing import Process, Lock def res ...

7月19日 21:57 投稿

Pythonマルチプロセス通信における3つの方法のパフォーマンス比較 (Queue, Pipe, ZeroMQ)

これらの手法はすべてデータのコピーを伴うため、共有メモリほど効率的ではありません。しかし、ロック管理などの複雑さがない分、使い勝手は良いでしょう。機能的には似ていますが、それぞれのシナリオにおけるパフォーマンスは異なります。 以下にテストコードを示します。ロジックは概ね同じです。今回のテストデータは、指定されたサイズの整数リストです。 ここでは ...

7月12日 23:18 投稿

リンクドリストによるキューの実装(C++)

キューはFIFO(First-In-First-Out)構造を持つデータ構造であり、配列ではなく単方向リンクリストを用いて実装することも可能である。この方法ではメモリを動的に確保できるため、事前の容量制限が不要で、拡張性に優れている。 本実装では、先頭ノードを指すheadと末尾ノードを指すtailの2つのポインタを保持し、以下6つの基本操作を提供する: enqueue:末尾に要素 ...

7月2日 22:46 投稿

C++スタック、キュー、優先度付きキューの基礎と実装

スタック(Stack) スタックはLIFO(Last In First Out)のデータ構造であり、コンテナアダプタとして実装されます。標準ライブラリではstd::stackが提供されており、主な操作は以下の通りです。 メンバ関数説明empty()スタックが空かどうかを判定size()要素数を取得top()最上位の要素への参照を取得push()要素を先頭に追加pop()最上位の要素を削除 最小スタックの実装 定 ...

7月2日 18:28 投稿

松枝作成シミュレーションのためのキュー・スタックアルゴリズム

松針を松枝に挿入する加工工程をプログラムで再現する問題を考えます。この工程は特定の制約条件下でデータを処理する必要があり、適切なデータ構造の選択が解決の鍵となります。 与えられるものは、供給装置に並んだ N 枚の松針、容量 M の一時保管箱、容量 K の松枝です。松枝への挿入は、常に前回挿入した松針以下のサイズであるという制約があります。この制約を満た ...

6月29日 19:22 投稿