-3

次のように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オブジェクトを渡すと、関数はループを作成するポイントのリストを返します。

この機能を実行するのを手伝ってください。

4

1 に答える 1

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
于 2013-02-19T13:49:53.250 に答える