【C#】LinkedListの末尾にノードを追加する方法を解説
C#のLinkedList<T>クラスを使うと、双方向リンクリストを簡単に操作できます。本記事では、既存のリンクリストの最後(末尾)の位置に新しいノードを追加する方法を、サンプルコードとともにわかりやすく解説します。
1. ノードを持つLinkedListを作成する
まず、文字列型の配列をもとにLinkedListを初期化します。コンストラクタに配列を渡すことで、各要素が順番にノードとして追加されたリンクリストが生成されます。
string[] students = {"Tim", "Jack", "Henry", "David", "Tom"};
LinkedList<string> list = new LinkedList<string>(students);
2. AddLast()メソッドで末尾にノードを追加する
リンクリストの末尾にノードを追加するには、AddLast()メソッドを使用します。引数に追加したい値を指定するだけで、自動的にリストの最後に新しいノードが挿入されます。
list.AddLast("Kevin");
AddLast()はO(1)の計算量で動作するため、リストの要素数が多くても高速に末尾への追加が可能です。なお、先頭に追加したい場合はAddFirst()メソッドを使用します。
3. 完全なサンプルコード
以下は、LinkedListを作成し、末尾にノードを追加した前後の状態を出力する完全なコード例です。
Example
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);
foreach (var stu in list) {
Console.WriteLine(stu);
}
// 末尾にノードを追加
Console.WriteLine("LinkedList after adding a node at the last position...");
list.AddLast("Kevin");
foreach (var stu in list) {
Console.WriteLine(stu);
}
}
}
Output
Tim Jack Henry David Tom LinkedList after adding a node at the last position... Tim Jack Henry David Tom Kevin
まとめ
C#でリンクリストの末尾にノードを追加するには、AddLast()メソッドを使うのが最もシンプルです。実行結果からもわかるように、新しく追加した「Kevin」がリストの最後に正しく挿入されていることが確認できます。先頭への追加や特定位置への挿入など、他の操作と組み合わせることで、柔軟なデータ構造の管理が可能になります。
-
【C言語】双方向リンクリストで任意の位置にノードを挿入する方法
リンクリストとはリンクリストは動的なメモリ確保(動的メモリ割り当て)を利用するデータ構造で、複数のノードがつながった集合体です。各ノードは「データ部」と「リンク部(ポインタ)」という2つの要素で構成されており、ポインタによって次のノード(双方向リンクリストの場合は前のノードも)と接続されています。リンクリストの種類C言語で扱われる主なリンクリストには、以下の4種類があります。単方向リンクリスト(Singly Linked List)双方向リンクリスト(Doubly Linked List)循環単方向リンクリスト(Circular Singly Linked List)循環双方向リンクリスト(C
-
C言語で連結リストの末尾からn番目のノードを取得するプログラム
n個のノードからなる連結リストが与えられたとき、その末尾からn番目のノードを出力するのが本記事の目的です。プログラムはリスト内のノードの並び順を変更してはならず、あくまで末尾から数えてn番目に位置するノードの値を表示するだけでなければなりません。具体例入力 -: 10 20 30 40 50 60 N = 3 出力 -: 40上記の例では、先頭ノードから順に「count − n」個目までのノード(10, 20, 30, 40, 50, 60)を走査し、末尾から3番目のノードとして 40 が得られます。効率的なアプローチリスト全体を最後まで走査しなくても、以下の手順で目的のノードを見つけられ