【C#】LinkedListの先頭に新しいノードや値を追加する方法(AddFirstの使い方)
LinkedListの先頭に新しいノードや値を追加するには?
C#のLinkedList<T>クラスで、リストの先頭に新しいノードまたは値を追加するには、AddFirst()メソッドを使用します。このメソッドは、指定した値を持つ新しいノードをリンクリストの最初に挿入し、それまで先頭にあったノードは自動的に2番目へ移動します。
なお、末尾に要素を追加する場合はAddLast()メソッドを、現在のノード数を確認する場合はCountプロパティをそれぞれ利用できます。
例1:string型のLinkedListの先頭に値を追加する
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(){
LinkedList<string> list = new LinkedList<string>();
list.AddLast("A");
list.AddLast("B");
list.AddLast("C");
list.AddLast("D");
list.AddLast("E");
list.AddLast("F");
Console.WriteLine("ノード数 = " + list.Count);
Console.WriteLine("LinkedListの要素一覧:");
foreach (string res in list) {
Console.WriteLine(res);
}
// 末尾にさらに要素を追加
list.AddLast("G");
list.AddLast("H");
list.AddLast("I");
Console.WriteLine("ノード数(更新後) = " + list.Count);
Console.WriteLine("LinkedListの要素一覧(更新後):");
foreach (string res in list) {
Console.WriteLine(res);
}
// 先頭に新しいノードを追加
list.AddFirst("AA");
Console.WriteLine("");
Console.WriteLine("先頭にノードを追加しました。");
Console.WriteLine("ノード数(更新後) = " + list.Count);
Console.WriteLine("LinkedListの要素一覧(更新後):");
foreach (string res in list) {
Console.WriteLine(res);
}
}
}
実行結果
ノード数 = 6 LinkedListの要素一覧: A B C D E F ノード数(更新後) = 9 LinkedListの要素一覧(更新後): A B C D E F G H I 先頭にノードを追加しました。 ノード数(更新後) = 10 LinkedListの要素一覧(更新後): AA A B C D E F G H I
AddFirst("AA")を呼び出すことで、値「AA」を持つ新しいノードがリストの先頭に挿入されました。既存の要素はすべて1つ後ろへずれ、ノード数も6→9→10と変化しているのが分かります。
例2:int型のLinkedListの先頭に複数の値を追加する
次に、数値を扱う例を見てみましょう。今度はAddFirst()を続けて2回呼び出し、先頭に複数の値を追加してみます。
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(){
LinkedList<int> list = new LinkedList<int>();
list.AddLast(100);
list.AddLast(200);
list.AddLast(300);
list.AddLast(400);
Console.WriteLine("ノード数 = " + list.Count);
Console.WriteLine("LinkedListの要素一覧:");
foreach (int res in list) {
Console.WriteLine(res);
}
// 先頭に2つのノードを連続して追加
list.AddFirst(500);
list.AddFirst(600);
Console.WriteLine("");
Console.WriteLine("先頭にノードを追加しました。");
Console.WriteLine("ノード数(更新後) = " + list.Count);
Console.WriteLine("LinkedListの要素一覧(更新後):");
foreach (int res in list) {
Console.WriteLine(res);
}
}
}
実行結果
ノード数 = 4 LinkedListの要素一覧: 100 200 300 400 先頭にノードを追加しました。 ノード数(更新後) = 6 LinkedListの要素一覧(更新後): 600 500 100 200 300 400
AddFirst()を連続して呼び出すと、後から追加した値ほど先頭に近い位置に配置されます。上の例では、まず500を先頭に追加し、その後600を追加しているため、最終的な並び順は「600 → 500 → 100 → 200 → 300 → 400」となっています。
ポイントのおさらい
AddFirst(T value)… リストの先頭に新しいノードを追加するAddLast(T value)… リストの末尾に新しいノードを追加するCountプロパティ … 現在のノード数を取得できるLinkedList<T>は双方向連結リストなので、先頭・末尾への追加や削除は高速(O(1))に行える
-
C#でLinkedListの指定したノードの後にノードを追加する方法
C#では、LinkedList<T>クラスを使うことで、双方向リンクリストを簡単に操作できます。この記事では、リンクリスト内の指定されたノードの直後に新しいノードを追加する方法を、具体的なコード例とともに解説します。 LinkedListの作成と初期化 まず、文字列配列をもとにLinkedListを作成し、初期要素を設定します。 string[] students = {Beth, Jennifer, Amy, Vera}; LinkedList<string> list = new LinkedList<string>(students); AddLa
-
C#でリンクリスト(LinkedList)の先頭にノードを追加する方法
C#のLinkedList<T>クラスでは、AddFirst()メソッドを使うことで、リンクリストの先頭に簡単に新しいノードを追加できます。この記事では、その具体的な手順をサンプルコードと実行結果とともにわかりやすく解説します。 1. ノードを含むLinkedListを作成する まず、文字列配列をもとにLinkedListを作成します。コンストラクタに配列を渡すことで、各要素がノードとして順番に格納されます。 string[] students = {Tim, Jack, Henry, David, Tom}; LinkedList<string> list = new