public void createList(Node root)
{
Dictionary<int, LinkedList<Node>> track = new Dictionary<int, LinkedList<Node>>();
LinkedList<Node> first = new LinkedList<Node>();
first.AddFirst(root);
track.Add(1, first);
int level = 1;
LinkedList<Node> temp = new LinkedList<Node>();
while (true)
{
LinkedList<Node> lis = new LinkedList<Node>();
if (level == 1)
temp = first;
foreach (Node n in temp)
{
if (n.left!=null)
lis.AddLast(n.left);
if (n.right != null)
lis.AddLast(n.right);
}
level++;
temp=lis;
if (lis.Count > 0)
{
track.Add(level, lis);
}
else
break;
}
}
Здравствуйте, в приведенной выше программе в C # я добавляю каждый уровень двоичного дерева в отдельные связанные списки, а затем добавляю каждый связанный список в словарь.Может кто-нибудь сказать, пожалуйста, как перебрать каждый связанный список в словаре?Если у меня есть трек <1, <1,2,3,4 >>, как мне добраться до 1,2,3,4?Что если я захочу добавить или удалить в 1,2,3,4?
Благодаря Ramhound'у за указатели на проблему, я думаю, мне придется получить объект LinkedList для каждого ключа в Словаре изатем измените связанный список, как я могу убедиться, что изменение отражено в Словаре - это мой следующий вопрос => Пожалуйста, дайте мне знать, если имеет смысл следующее
LinkedListObject = Dictionary [mykey];// Изменить LL, добавить, удалить и т. Д. MyDictionary [myKey] = LinkedListObject;// положить обратно