Есть ли способ сделать LinkedList в C# для нескольких детей, а не только для одного? то есть есть способ превратить его в многострочный связанный список?C# Multiway Связанный список
0
A
ответ
2
Вам нужно создать список списков:
LinkedList<LinkedList<int>> l = new LinkedList<LinkedList<int>>();
Но это зависит от конкретной задачи.
Если вы хотите иметь больше контроля над тем, что вы хотите сохранить, вы должны создать свою собственную структуру данных и хранить, что в списке:
public class MyNodeData
{
public MyNodeData()
{
Children = new LinkedList<MyNodeData>();
}
public MyNodeData(int i, string s)
: this()
{
MyInt = i;
MyString = s;
}
public int MyInt { get; set; }
public string MyString { get; set; }
public LinkedList<MyNodeData> Children { get; private set; }
}
Это всего лишь пример, и вы мои определить какие свойства любого типа по любому желаемому имени.
Затем добавьте данные:
LinkedList<MyNodeData> l = new LinkedList<MyNodeData>();
var d = new MyNodeData();
d.MyInt = 10;
d.MyString = "Node message";
d.Children.AddLast(new MyNodeData(11, "Child 1 message"));
d.Children.AddLast(new MyNodeData(12, "Child 2 message"));
l.AddLast(d);
Console.WriteLine(l.First.Value.MyString);
Console.WriteLine(l.First.Value.Children.Last.Value.MyInt);
2
То, что вы описываете, представляет собой диаграмму или структуру данных дерева. Я думаю, что самым ясным способом реализовать это было бы создание собственной структуры данных, такой как узел. Вы можете прочитать больше на графиках здесь: http://en.wikipedia.org/wiki/Graph_(abstract_data_type).
Смежные вопросы
- 1. Переписать связанный список C
- 2. вложенными связанный список C
- 3. Связанный список в C
- 4. Связанный список C++ Node
- 5. Связанный список QuickSort C
- 6. Связанный список в C
- 7. C - связанный список
- 8. Удалить связанный список C
- 9. Связанный список C++
- 10. Связанный список указателей C++
- 11. Generic C++ Связанный список
- 12. C - String Связанный список
- 13. C++ Связанный список
- 14. Связанный список на C++
- 15. C++ связанный список проблем
- 16. C++ Связанный список confusion
- 17. Связанный список в C
- 18. Печать Связанный список - C++
- 19. C++ связанный список разбился
- 20. Единственный связанный список C++
- 21. C - Вдвойне связанный список
- 22. C++, связанный список обучения
- 23. C++ Связанный список Инициализация
- 24. Связанный список в C++
- 25. C++ Связанный список
- 26. Общий связанный список C++
- 27. Связанный список в C
- 28. C++ связанный список создание связанный список связанных списков
- 29. C++ программа сбрасывает связанный список?
- 30. Связанный список отсортированных имен C++
Спасибо за ответ. Если я использую этот подход, как именно я буду хранить «родительский» объект, если я могу хранить только список его дочерних элементов? –
Другими словами, если у меня есть Node '1', и я хочу сохранить идентификатор этого узла, как я могу это сделать, если все, что я могу сохранить, это список со своими дочерними элементами? –
Ну, это новая вещь! Поэтому вы хотите сохранить некоторые данные в дополнение к детям. ОК. Я изменяю ответ, чтобы ответить на этот вопрос! –