C#学習04-シーケンステーブル-ベクトル-動的配列--List「T」-単純データ型を例に
2277 ワード
データ構造カリキュラムの順序表(Sequence List);C++のベクトル(vector);C#のリスト
実現上の原理は似ている.
すなわち,動的に調整可能な配列である.事前にデータ量の大きさを知らないアプリケーションに対応できます.
一、List所在ライブラリ
using System.Collections.Generic;//List所在ライブラリ
二、整数リストを定義する
三、末尾にデータを挿入する
前から後に挿入されたデータは、6 7 8 1 2 3です.
注意:Addには複数のリロード関数があり、パラメータが異なります.
四、リストのデータを印刷する
Listは配列のように下付きで要素を参照できます.
ここで、L.Countは、Listにおけるデータの個数を表す.
五、リスト中のデータを昇順に並べ替える
L.Sort();
L.Sort((x, y) => -x.CompareTo(y));//降順
注意:この例は単純なデータなので、このようにすることができます.リストに構造体データがある場合は、比較関数を定義する必要があります.
六、順序検索
int index = L.IndexOf(8);//順番に検索して、下の記号を返します.
七、折半検索
index = L.BinarySearch(3);//昇順の場合は、半値で検索し、存在する場合は下付きを返します.そうでない場合は負の値を返します.
八、元素逆転(逆転)
L.Reverse();//
九、完全なプログラム
実現上の原理は似ている.
すなわち,動的に調整可能な配列である.事前にデータ量の大きさを知らないアプリケーションに対応できます.
一、List所在ライブラリ
using System.Collections.Generic;//List所在ライブラリ
二、整数リストを定義する
static void Main(string[] args)
{
List L=new List();
}
三、末尾にデータを挿入する
L.Add(6);
L.Add(7);
L.Add(8);
L.Add(1);
L.Add(2);
L.Add(3);
前から後に挿入されたデータは、6 7 8 1 2 3です.
注意:Addには複数のリロード関数があり、パラメータが異なります.
四、リストのデータを印刷する
Listは配列のように下付きで要素を参照できます.
static void print(List L)
{
for (int i = 0; i < L.Count; i++)
{
Console.Write(L[i]); Console.Write(" ");
}
Console.Write("
");
}
ここで、L.Countは、Listにおけるデータの個数を表す.
五、リスト中のデータを昇順に並べ替える
L.Sort();
L.Sort((x, y) => -x.CompareTo(y));//降順
注意:この例は単純なデータなので、このようにすることができます.リストに構造体データがある場合は、比較関数を定義する必要があります.
六、順序検索
int index = L.IndexOf(8);//順番に検索して、下の記号を返します.
七、折半検索
index = L.BinarySearch(3);//昇順の場合は、半値で検索し、存在する場合は下付きを返します.そうでない場合は負の値を返します.
八、元素逆転(逆転)
L.Reverse();//
九、完全なプログラム
static void Main(string[] args)
{
List L=new List();
L.Add(6);
L.Add(7);
L.Add(8);
L.Add(1);
L.Add(2);
L.Add(3);
Console.WriteLine(L.Count);// L
Console.WriteLine(L.Capacity);// L
L.Sort(); //
print(L);
index = L.BinarySearch(3);// ,
Console.WriteLine(index);
print(L);
index = L.IndexOf(8);// ,
Console.WriteLine(index);
L.Reverse();//
print(L);
}
static void print(List L)
{
for (int i = 0; i < L.Count; i++)
{
Console.Write(L[i]); Console.Write(" ");
}
Console.Write("
");
}