コード例 #1
0
 public void PrintLevel(Node head, ref Queue<Node> queue)
 {
     while (head != null && !head.IsVisited)
     {
         Console.Write(" " + head.data);
         head.IsVisited = true;
         if (head.Child != null)
         {
             queue.Enqueue(head.Child);
         }
         head = head.Next;
     }
 }
コード例 #2
0
        public void AddNodes(int level, List<int> nodes)
        {
            Node currentNode = null;
            List<Node> tmp = new List<Node>();
            foreach (var node in nodes)
            {
                if (currentNode == null)
                {
                    currentNode = new Node() {data = node};
                }
                else
                {
                    currentNode.Next = new Node(){data = node};
                    currentNode = currentNode.Next;
                }
                tmp.Add(currentNode);
            }

            if (this.LisNodes.ContainsKey(level))
            {
                this.LisNodes[level] = this.LisNodes[level].Union(tmp);
            }
            else
            {
                this.LisNodes.Add(level, tmp);
            }
        }