C#でLinkedListに特定のノードが存在するか確認する方法
C#では、Contains()メソッドを使うことで、LinkedListの中に特定のノード(要素)が存在するかどうかを簡単に確認できます。このメソッドはSystem.Collections.Generic名前空間に属しており、指定した値がリスト内に見つかればtrue、見つからなければfalseというブール値を返します。
LinkedListの準備
まず、次のように文字列型のLinkedListを作成します。
string[] students = {"Beth","Jennifer","Amy","Vera"};
LinkedList<string> list = new LinkedList<string>(students);Contains()メソッドの使い方
例えば、「Amy」というノードがリストに含まれているかどうかを調べたい場合は、以下のようにContains()メソッドを呼び出します。
list.Contains("Amy")この場合、「Amy」はリスト内に存在するため、メソッドはTrueを返します。なお、Contains()メソッドはリストを先頭から順番に走査して検索を行うため、計算量はO(n)です。
サンプルコード全体
ノードの追加と存在確認を組み合わせた、完全なサンプルコードを見てみましょう。
using System;
using System.Collections.Generic;
class Demo {
static void Main() {
string[] students = {"Beth","Jennifer","Amy","Vera"};
LinkedList<string> list = new LinkedList<string>(students);
foreach (var stu in list) {
Console.WriteLine(stu);
}
// 末尾にノードを追加
var newNode = list.AddLast("Emma");
// 上で追加したノードの後に新しいノードを挿入
list.AddAfter(newNode, "Matt");
Console.WriteLine("新しいノード追加後のLinkedList...");
foreach (var stu in list) {
Console.WriteLine(stu);
}
Console.WriteLine("学生Amy(ノード)はリスト内に存在するか?: "+list.Contains("Amy"));
Console.WriteLine("学生Anne(ノード)はリスト内に存在するか?: "+list.Contains("Anne"));
}
}実行結果
Beth Jennifer Amy Vera 新しいノード追加後のLinkedList... Beth Jennifer Amy Vera Emma Matt 学生Amy(ノード)はリスト内に存在するか?: True 学生Anne(ノード)はリスト内に存在するか?: False
ポイントまとめ
- Contains()メソッドは、LinkedList内に指定した値が存在するかを判定し、bool値を返します。
- AddLast()メソッドで末尾にノードを追加でき、AddAfter()メソッドで任意のノードの直後に挿入できます。
- 存在しない要素を検索した場合はfalseが返されるため、条件分岐と組み合わせると安全な処理が可能です。
-
Pythonで与えられたリストが有効な状態かどうかをチェックするプログラム
問題の概要nums という数値のリストが与えられたとき、リスト内のすべての数字を次のいずれかのルールでグループ化できるかどうかを判定します。連続する2つの同じ数字からなるペア (a, a)連続する3つの同じ数字からなるトリプレット (a, a, a)連続する3つの連番からなるトリプレット (a, a+1, a+2)たとえば、入力が nums = [7, 7, 3, 4, 5] の場合、[7, 7] をペアとして、[3, 4, 5] を連番のトリプレットとしてそれぞれグループ化できるため、出力は True になります。解決のアプローチ:動的計画法(DP)この問題は、動的計画法を使うことで効率的に
-
Pythonでリストが空かどうかを判定するプログラム
Pythonでは、リストが空かどうかを簡単に判定できます。この記事では、空のリストが与えられたときに、それが空であるかどうかを確認する方法を紹介します。ポイントは、暗黙的(implicit)な判定方法を使うことです。Pythonでは、空のリストはブール値として「偽(False)」と評価されるため、if not を使うことで簡潔にチェックできます。 アルゴリズム ステップ1:空のリストを用意します。 ステップ2:リストが空であれば 1 を返し、そうでなければ 0 を返します。 サンプルコード # リストが空かどうかをチェックするPythonコード def checklist(A):