C#学习04-顺序表-向量-动态数组--List「T」-以简单数据类型为例

数据结构课程中的顺序表(Sequence List);C++中的向量(vector);C#中的List

在实现上的原理很类似。

即:能够动态调整的数组。可以应对事先不知道数据量大小的应用。

一、List所在库

using System.Collections.Generic; //List所在库

二、定义一个整型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中的数据

List可以像数组一样用下标引用元素。

static void print(List L)
        {
            for (int i = 0; i < L.Count; i++)
            {
                Console.Write(L[i]); Console.Write("  ");
            }

            Console.Write("\n");
        }

其中:L.Count表示List中的数据个数。

五、List中数据按照升序排序

L.Sort();

L.Sort((x, y) => -x.CompareTo(y));//降序

注意:因为本例是简单数据,所以可以这样。如果List中是结构体数据,则需要定义比较函数。

六、顺序查找

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("\n");
        }

 

你可能感兴趣的:(C#,C#)