C#
 Computer >> コンピューター >  >> プログラミング >> C#

【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))に行える
  1. C#でLinkedListの指定したノードの後にノードを追加する方法

    C#では、LinkedList<T>クラスを使うことで、双方向リンクリストを簡単に操作できます。この記事では、リンクリスト内の指定されたノードの直後に新しいノードを追加する方法を、具体的なコード例とともに解説します。 LinkedListの作成と初期化 まず、文字列配列をもとにLinkedListを作成し、初期要素を設定します。 string[] students = {Beth, Jennifer, Amy, Vera}; LinkedList<string> list = new LinkedList<string>(students); AddLa

  2. C#でリンクリスト(LinkedList)の先頭にノードを追加する方法

    C#のLinkedList<T>クラスでは、AddFirst()メソッドを使うことで、リンクリストの先頭に簡単に新しいノードを追加できます。この記事では、その具体的な手順をサンプルコードと実行結果とともにわかりやすく解説します。 1. ノードを含むLinkedListを作成する まず、文字列配列をもとにLinkedListを作成します。コンストラクタに配列を渡すことで、各要素がノードとして順番に格納されます。 string[] students = {Tim, Jack, Henry, David, Tom}; LinkedList<string> list = new