// // This file contains the C# code from Program 6.20 of // "Data Structures and Algorithms // with Object-Oriented Design Patterns in C#" // by Bruno R. Preiss. // // Copyright (c) 2001--2002 by Bruno R. Preiss, P.Eng. All rights reserved. // // http://www.brpreiss.com/books/opus6/programs/pgm06_20.txt // public class Algorithms { public static void BreadthFirstTraversal(Tree tree) { Queue queue = new QueueAsLinkedList(); queue.Enqueue(tree); while (!queue.IsEmpty) { Tree t = (Tree)queue.Dequeue(); Console.WriteLine(t.Key); for (int i = 0; i < t.Degree; ++i) { Tree subTree = t.GetSubtree(i); queue.Enqueue(subTree); } } } }