競技プログラミングの復習と解法まとめ
7月は主に学校の夏期個人戦に参加し、その他の時間は主に学習やゲームに費やした。
上海大学プログラミングコンテスト 2024
上海地区のコンテストで、結果は芳しくなかった。主に実力不足が原因。
問題E - 無線ソフトウェア日
文字の出現頻度をカウントし、必要な文字数の最小値を求める問題。
#include <bits/stdc++.h>
using namespace std;
int main() {
int ...
5月15日 21:11 投稿
シングルリンクリストの詳細な実装(C言語)
シングルリンクリストとは
シングルリンクリスト(Singly Linked List)は、データをノードとして格納し、各ノードが次のノードへのポインタを持つ線形データ構造です。配列や順序リスト(シーケンシャルリスト)と異なり、データの挿入・削除が柔軟で、必要に応じて動的にメモリを確保できます。
シングルリンクリストの構造
シングルリンクリストは、各ノードが2つの部 ...
5月15日 05:09 投稿
線形リストの順序リスト実装(Pythonによる記述)
線形リストは2種類の格納形式に分けられます:順序格納と連結格納
順序格納:
順序格納では、線形リストのノードは論理順に連続したアドレスのメモリ領域に格納されます。この方法で格納された線形リストを順序リストと呼びます。2つの特徴があります:1. 論理順序と物理順序が一致している;2. データ要素間の関係はコンピュータ内での「物理的な位置の隣接」によって表現 ...
5月14日 20:08 投稿
C言語によるデータ構造の実装とアルゴリズム設計
線形リストの特性と比較
配列ベースリストの特徴
配列を用いたリストはメモリ空間を事前に確保する必要があるため、サイズ変更が難しいが、要素へのアクセスは定数時間で可能である。挿入や削除を行う際には、対象位置以降のすべての要素を移動させる必要があり、処理効率が低下する可能性がある。
単方向連結リストの特徴
連結リストは動的メモリ割り当てにより柔軟なサ ...
5月14日 18:06 投稿
バイナリツリーの基礎理論と再帰的走査アルゴリズム
バイナリツリーの基本概念
バイナリツリーは計算機科学における重要なデータ構造であり、多くのアルゴリズムでスタックを用いて実装されます。
バイナリツリーの分類
完全二分木 (Full Binary Tree)
すべてのノードが0個または2個の子ノードを持ち、すべての葉ノードが同じ深さにある二分木を完全二分木と呼びます。深さkの完全二分木は2^k-1個のノードを持ちます。
完 ...
5月14日 12:57 投稿