C#でLinkedListを走査する方法 ― 宣言からトラバーサルまで
C#では、System.Collections.Generic名前空間に含まれるLinkedListコレクションを使用することで、連結リストを簡単に扱うことができます。まずはLinkedListを宣言する方法から見ていきましょう。
var a = new LinkedList<string>();
次に、AddLastメソッドを使ってリストの末尾に要素を追加します。
a.AddLast("Tim");
a.AddLast("Tom");LinkedListの走査(トラバーサル)は、foreachループを使うことで非常にシンプルに実現できます。以下に完全なサンプルコードを示します。
サンプルコード
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(string[] args) {
var a = new LinkedList<string>();
a.AddLast("Tim");
a.AddLast("Tom");
foreach(var res in a) {
Console.WriteLine(res);
}
}
}出力結果
Tim Tom
コードの解説
このプログラムでは、まずstring型のLinkedListを作成し、AddLastメソッドによって「Tim」「Tom」の2つの要素を順に末尾へ追加しています。
その後、foreach文でリスト内の各要素を先頭から順番に取り出し、Console.WriteLineメソッドでコンソールに出力しています。これが最も基本的なLinkedListの走査方法です。
なお、C#のLinkedList<T>は双方向連結リストとして実装されており、AddFirstやAddLast、Removeなどのメソッドを使えば、要素の追加・削除を高速に行えます。ただし、配列と異なりインデックスによる直接アクセスはできないため、走査にはforeachや列挙子(Enumerator)を利用するのが一般的です。
-
C#のLinkedList(連結リスト)の基本と使い方を解説
C#のLinkedList<T>とはC#では、System.Collections.Generic名前空間に用意されているLinkedList<T>クラスを使用することで、連結リスト(リンクリスト)を簡単に扱うことができます。LinkedList<T>の最大の特徴は、リスト内への要素の挿入と削除を高速に行える点です。配列ベースのコレクションと異なり、要素の追加・削除時に他の要素を移動させる必要がないため、データの入れ替えが頻繁に発生する場面で特に有効です。LinkedList<T>の主な特徴要素の挿入・削除が高速に行える重複した要素を格納できるS
-
C#でスタックを反転(逆順)にする方法
スタックはLIFO(Last In First Out:後入れ先出し)という特性を持つデータ構造です。この特性を活かすと、あるスタックから別のスタックへ要素を移し替えるだけで、簡単に要素の順序を反転させることができます。ここでは、C#の Stack クラスを使ってスタックを反転する方法を、具体的な手順とサンプルコード付きで解説します。 反転の手順 1. スタックの作成と要素の追加 まず、元となるスタックを作成し、Push メソッドで要素を追加します。 Stack st = new Stack(); st.Push(P); st.Push(Q); st.Push(R); 2. 反転用のスタックを