C#学习06-顺序表-向量-动态数组--List「T」-以对象数组为例

仍然是以平面上的点为例。

要点:

1、把点封装为类。

2、点类实现IComparable接口

3、类中实现CompareTo方法。

这样一来,该点类的对象存储在List中,就可以直接调用L.sort()排列了。

class Node:IComparable
    {//结构体类型
        public int x;
        public int y;
        public int CompareTo(Node B)
        {
            if (this.x > B.x)
            {
                return 1;
            }
            else if (this.x == B.x)
            {
                if (this.y > B.y)
                    return 1;
                else if (this.y == B.y)
                    return 0;
                else return -1;


            }
            else return -1;


        }       
        

    }
static void Main(string[] args)
        {
            //using Program.Node;
            List L=new List();
            Node t=new Node();
            t.x = 7;t.y = 8;
            L.Add(t);
            t = new Node();
            t.x = 7; t.y = 6;
            L.Add(t);
            t = new Node();
            t.x = 1; t.y = 6;
            L.Add(t);
            t = new Node();
            t.x = 1; t.y = 5;
            L.Add(t);
            print(L);
            
            L.Sort();
            print(L);
            
            t = new Node();
            t.x = 7;t.y = 6;
            int index;
            index = L.BinarySearch(t);
            Console.WriteLine(index);


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

            Console.Write("\n");
        }

 

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