Example #1
0
        public void Test_LinkedList_Delete()
        {
            var list = new VLinkedList <int>();

            list.Add(1);
            list.Add(2);
            list.Add(3);
            Assert.Equal(3, list.Count());
            Assert.Equal(1, list.First());
            Assert.Equal(3, list.Last());

            list.Delete(4);
            Assert.Equal(3, list.Count());
            Assert.Equal(1, list.First());
            Assert.Equal(3, list.Last());


            list.Delete(2);
            Assert.Equal(2, list.Count());
            Assert.Equal(1, list.First());
            Assert.Equal(3, list.Last());

            list.Delete(1);
            Assert.Equal(1, list.Count());
            Assert.Equal(3, list.First());
            Assert.Equal(3, list.Last());

            list.Delete(3);
            Assert.Equal(0, list.Count());
            Assert.Equal(0, list.First());
            Assert.Equal(0, list.Last());

            list.Add(4);
            list.Add(5);
            list.Add(6);
            Assert.Equal(3, list.Count());
            Assert.Equal(4, list.First());
            Assert.Equal(6, list.Last());

            list.Delete(4);
            Assert.Equal(2, list.Count());
            Assert.Equal(5, list.First());
            Assert.Equal(6, list.Last());

            list.Delete(6);
            Assert.Equal(1, list.Count());
            Assert.Equal(5, list.First());
            Assert.Equal(5, list.Last());

            list.Delete(5);
            Assert.Equal(0, list.Count());
            Assert.Equal(0, list.First());
            Assert.Equal(0, list.Last());
        }
Example #2
0
        public void Test_LinkedList_Add()
        {
            var list = new VLinkedList <int>();

            Assert.Equal(0, list.Count());
            list.Add(1);
            Assert.Equal(1, list.Count());
            Assert.Equal(1, list.First());
            Assert.Equal(1, list.Last());

            list.Add(2);
            Assert.Equal(2, list.Count());
            Assert.Equal(1, list.First());
            Assert.Equal(2, list.Last());

            list.Add(3);
            Assert.Equal(3, list.Count());
            Assert.Equal(1, list.First());
            Assert.Equal(3, list.Last());
        }
Example #3
0
        ///2.2. Реализуйте алгоритм для нахождения в односвязном списке k-го элемента с конца.
        public static T GetElementFromEnd <T>(VLinkedList <T> list, int numFromEnd)
        {
            var realNum = list.Count() - numFromEnd;
            var node    = list.FirstNode();

            for (int i = 0; i < realNum - 1; i++)
            {
                node = node.Next;
            }

            return(node.Value);
        }