2013-02-19 2 views
-3

У меня есть программа, чтобы сделать связанный список в C# как это:получить петли в виде связанного списка 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, функция возвращает li st точек, которые делают цикл.

Пожалуйста, помогите мне выполнить эту функцию.

+2

вы должны либо использовать список для всех объектов (в вашем случае отсортированный один предпочтительно), или связанный список (сохранение следующего объекта внутри самого объекта). Смешивание их звучит как плохая идея – Najzero

+0

Я вижу только некоторые классы. Где функция, вызывающая знак? –

+0

Если точка имеет список точек, это больше не список, это либо дерево, либо график. – R0MANARMY

ответ

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 
Смежные вопросы