Esempio n. 1
0
        public void StackX_Positive()
        {
            var stack = new StackX <int>();

            Assert.IsTrue(stack.IsEmpty());
            stack.Push(1);
            stack.Push(3);
            stack.Push(5);
            stack.Push(7);
            stack.Push(9);
            Assert.AreEqual(5, stack.Size());
            Assert.AreEqual(9, stack.Peek());

            Assert.AreEqual(9, stack.Pop());
            Assert.AreEqual(7, stack.Pop());
            Assert.AreEqual(3, stack.Size());
            Assert.AreEqual(5, stack.Peek());

            stack.Push(66);
            var list = new List <int> {
                66, 5, 3, 1
            };
            int index = 0;

            foreach (var i in stack)
            {
                Assert.AreEqual(list[index++], i);
            }
        }
Esempio n. 2
0
            public virtual void Dfs()
            {
                _vertexList[0].WasVisited = true;
                DisplayVertex(0);
                _theStack.Push(0);
                while (!_theStack.Empty)
                {
                    int v = GetAdjUnvisitedVertex(_theStack.Peek());
                    if (v == -1)
                    {
                        _theStack.Pop();
                    }

                    else
                    {
                        _vertexList[v].WasVisited = true;
                        DisplayVertex(v);
                        _theStack.Push(v);
                    }
                }

                for (int j = 0; j < _nVerts; j++)
                {
                    _vertexList[j].WasVisited = false;
                }
            }