获取链接列表中的循环C#

时间:2013-02-19 13:43:12

标签: c# data-structures singly-linked-list

我有一个程序在c#中制作链接列表,如下所示:

class Point
{
    public string Name { get; set; }
    public List<Point> NextPoints { get; set; }

    public Point()
    {
        NextPoints = new List<Point>();
    }
}

这是带有名称和下一个点的点对象。

我用数据填充点列表

List<Point> Points;

我在这里定义了一行:

class DashedLine
{
    public Point X { get; set; }
    public Point Y { get; set; }

}

我需要一个递归函数来获取给定 DashedLine

的循环

因此,我传递 DashedLine 对象,该函数返回一个构成循环的点列表。

请帮我做这个功能。

1 个答案:

答案 0 :(得分:0)

考虑更改您的数据结构,可能是这样的:

class Program
{
    static void Main(string[] args)
    {
        DashedLine line = new DashedLine();
        line.Points.Add(new Point { X = 1, Y = 1 });
        line.Points.Add(new Point { X = 2, Y = 2 });
        line.Points.Add(new Point { X = 3, Y = 3 });
        line.Points.Add(new Point { X = 4, Y = 4 });

        foreach (Point p in line.Points)
        {
            Debug.WriteLine("Point {0}, {1}", p.X, p.Y);
        }
    }
}

class Point
{
    public int X { get; set; }
    public int Y { get; set; }
}

class DashedLine
{
    public List<Point> Points { get; set; }

    public DashedLine()
    {
        Points = new List<Point>();
    }
}

输出:

Point 1, 1
Point 2, 2
Point 3, 3
Point 4, 4