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

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

C#のLinkedList<T>クラスでは、AddFirst()メソッドを使うことで、リンクリストの先頭に簡単に新しいノードを追加できます。この記事では、その具体的な手順をサンプルコードと実行結果とともにわかりやすく解説します。

1. ノードを含むLinkedListを作成する

まず、文字列配列をもとにLinkedListを作成します。コンストラクタに配列を渡すことで、各要素がノードとして順番に格納されます。

string[] students = {"Tim", "Jack", "Henry", "David", "Tom"};
LinkedList<string> list = new LinkedList<string>(students);

2. AddFirst()メソッドで先頭にノードを追加する

先頭位置にノードを追加するには、AddFirst()メソッドを使用します。引数には追加したい要素を指定します。

list.AddFirst("Amit");

完全なサンプルコード

以下は、上記の手順をまとめた実行可能なサンプルプログラムです。

using System;
using System.Collections.Generic;

class Demo {
    static void Main() {
        string[] students = {"Tim", "Jack", "Henry", "David", "Tom"};
        LinkedList<string> list = new LinkedList<string>(students);

        // 追加前のLinkedListを表示
        foreach (var stu in list) {
            Console.WriteLine(stu);
        }

        // 先頭にノードを追加
        Console.WriteLine("先頭にノードを追加した後のLinkedList...");
        list.AddFirst("Amit");

        foreach (var stu in list) {
            Console.WriteLine(stu);
        }
    }
}

実行結果

Tim
Jack
Henry
David
Tom
先頭にノードを追加した後のLinkedList...
Amit
Tim
Jack
Henry
David
Tom

ポイント解説

AddFirst()メソッドはO(1)の計算量で動作するため、配列のように既存の要素を後ろにずらす処理が不要で、非常に高速です。また、このメソッドは戻り値として新しく追加されたノード(LinkedListNode<T>型)を返すため、追加したノードへの参照を保持することもできます。なお、リンクリストの末尾にノードを追加したい場合は、AddLast()メソッドを使用します。

  1. 【C言語】双方向リンクリストで任意の位置にノードを挿入する方法

    リンクリストとはリンクリストは動的なメモリ確保(動的メモリ割り当て)を利用するデータ構造で、複数のノードがつながった集合体です。各ノードは「データ部」と「リンク部(ポインタ)」という2つの要素で構成されており、ポインタによって次のノード(双方向リンクリストの場合は前のノードも)と接続されています。リンクリストの種類C言語で扱われる主なリンクリストには、以下の4種類があります。単方向リンクリスト(Singly Linked List)双方向リンクリスト(Doubly Linked List)循環単方向リンクリスト(Circular Singly Linked List)循環双方向リンクリスト(C

  2. C言語で連結リストの末尾からn番目のノードを取得するプログラム

    n個のノードからなる連結リストが与えられたとき、その末尾からn番目のノードを出力するのが本記事の目的です。プログラムはリスト内のノードの並び順を変更してはならず、あくまで末尾から数えてn番目に位置するノードの値を表示するだけでなければなりません。具体例入力 -: 10 20 30 40 50 60   N = 3 出力 -: 40上記の例では、先頭ノードから順に「count − n」個目までのノード(10, 20, 30, 40, 50, 60)を走査し、末尾から3番目のノードとして 40 が得られます。効率的なアプローチリスト全体を最後まで走査しなくても、以下の手順で目的のノードを見つけられ