C#学習04-シーケンステーブル-ベクトル-動的配列--List「T」-単純データ型を例に

2277 ワード

データ構造カリキュラムの順序表(Sequence List);C++のベクトル(vector);C#のリスト
実現上の原理は似ている.
すなわち,動的に調整可能な配列である.事前にデータ量の大きさを知らないアプリケーションに対応できます.
一、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("
"); }