Exemplo n.º 1
0
        public void TestIsEmpty()
        {
            IStack <int> sut = new ListStack <int>();

            Assert.True(sut.IsEmpty());

            sut.Push(5);
            Assert.False(sut.IsEmpty());
        }
Exemplo n.º 2
0
 public void ListStackTest()
 {
     var stack = new ListStack<int>();
     stack.Push(0);
     stack.Push(10);
     stack.Push(-10);
     Assert.AreEqual(-10, stack.Pop());
     Assert.IsFalse(stack.IsEmpty());
     Assert.AreEqual(10, stack.Pop());
     Assert.AreEqual(0, stack.Pop());
     Assert.IsTrue(stack.IsEmpty());
 }
Exemplo n.º 3
0
        public void IsEmptyTest()
        {
            Assert.IsTrue(list.IsEmpty());

            list.Push(1);
            list.Push(2);

            list.Pop();
            Assert.IsFalse(list.IsEmpty());
            list.Pop();
            Assert.IsTrue(list.IsEmpty());
        }
Exemplo n.º 4
0
        public void ListStackTest()
        {
            var stack = new ListStack <int>();

            stack.Push(0);
            stack.Push(10);
            stack.Push(-10);
            Assert.AreEqual(-10, stack.Pop());
            Assert.IsFalse(stack.IsEmpty());
            Assert.AreEqual(10, stack.Pop());
            Assert.AreEqual(0, stack.Pop());
            Assert.IsTrue(stack.IsEmpty());
        }
Exemplo n.º 5
0
        public void ShowVertexGraphWithDepth(GraphVertex vertexStart)
        {
            Console.Write(vertexStart + "부터 탐색 : ");

            GraphVertex vertexVisit = vertexStart;

            VisitVertex(vertexVisit);

            ListStack <GraphVertex> stack = new ListStack <GraphVertex>();

            stack.Push(vertexVisit);

            while (_lists[(int)vertexVisit].ReadFirst())
            {
                bool visitFlag  = false;
                var  vertexNext = _lists[(int)vertexVisit].CurrentNode.Data;

                if (VisitVertex(vertexNext))
                {
                    stack.Push(vertexVisit);

                    vertexVisit = vertexNext;
                    visitFlag   = true;
                }
                else
                {
                    while (_lists[(int)vertexVisit].ReadNext())
                    {
                        vertexNext = _lists[(int)vertexVisit].CurrentNode.Data;

                        if (!VisitVertex(vertexNext))
                        {
                            continue;
                        }

                        stack.Push(vertexVisit);

                        vertexVisit = vertexNext;
                        visitFlag   = true;
                        break;
                    }
                }

                if (visitFlag)
                {
                    continue;
                }
                if (stack.IsEmpty())
                {
                    break;
                }

                vertexVisit = stack.Pop();
            }

            Console.WriteLine();

            InitializeVisitInformation();
        }
Exemplo n.º 6
0
        public void TestPop()
        {
            IStack <int> sut = new ListStack <int>();

            sut.Push(1);
            sut.Push(2);
            sut.Push(3);
            sut.Push(4);
            Assert.Equal(4, sut.Pop());
            Assert.Equal(3, sut.Top());
            sut.Pop();
            sut.Pop();
            Assert.Equal(1, sut.Pop());
            Assert.True(sut.IsEmpty());
        }
Exemplo n.º 7
0
        public static void DisplayListStack()
        {
            ListStack <int> stack = new ListStack <int>();

            for (int i = 1; i <= 5; i++)
            {
                stack.Push(i);
            }

            while (!stack.IsEmpty())
            {
                stack.Pop();
                Console.Write(stack.CurrentData + " ");
            }
        }
Exemplo n.º 8
0
        private bool CheckVertexConnection(GraphVertex vertex1, GraphVertex vertex2)
        {
            GraphVertex             visit = vertex1;
            ListStack <GraphVertex> stack = new ListStack <GraphVertex>();

            VisitVertex(visit);
            stack.Push(visit);

            while (_lists[(int)visit].ReadFirst())
            {
                GraphVertex next    = _lists[(int)visit].CurrentNode.Data;
                bool        visited = false;

                if (next == vertex2)
                {
                    InitializeVisitInformation();
                    return(true);
                }

                if (VisitVertex(next))
                {
                    stack.Push(visit);
                    visit   = next;
                    visited = true;
                }
                else
                {
                    while (_lists[(int)visit].ReadNext())
                    {
                        next = _lists[(int)visit].CurrentNode.Data;

                        if (next == vertex2)
                        {
                            InitializeVisitInformation();
                            return(true);
                        }

                        if (!VisitVertex(next))
                        {
                            continue;
                        }

                        stack.Push(visit);
                        visit   = next;
                        visited = true;
                        break;
                    }
                }

                if (visited)
                {
                    continue;
                }
                if (stack.IsEmpty())
                {
                    break;
                }

                visit = stack.Pop();
            }

            InitializeVisitInformation();

            return(false);
        }