Ejemplo n.º 1
0
        public void BucketSort()
        {
            auxCollection = new Droid[highestValue];
            for (int i = 0; i < highestValue; i++)
            {
                auxCollection[i] = DCollection[i];
            }
            // push droids onto the appropriate stack
            foreach (Droid droid in auxCollection)
            {
                if (droid.Model == "Astromech")
                {
                    astromechStack.Push(droid);
                }
                if (droid.Model == "Janitor")
                {
                    janitorialStack.Push(droid);
                }
                if (droid.Model == "Utility")
                {
                    utilityStack.Push(droid);
                }
                if (droid.Model == "Protocol")
                {
                    protocolStack.Push(droid);
                }
            }
            while (astromechStack.size() != 0)
            {
                genericQueue.Endqueue(astromechStack.Pop());
            }

            while (janitorialStack.size() != 0)
            {
                genericQueue.Endqueue(janitorialStack.Pop());
            }

            while (utilityStack.size() != 0)
            {
                genericQueue.Endqueue(utilityStack.Pop());
            }

            while (protocolStack.size() != 0)
            {
                genericQueue.Endqueue(protocolStack.Pop());
            }

            BSI = 0;
            // dequeue all the droids back into the original DCollection array
            while (genericQueue.size() != 0)
            {
                DCollection[BSI] = genericQueue.queue();
                BSI++;
            }
        }