Exemplo n.º 1
28
        // READ: http://msdn.microsoft.com/en-us/library/6x16t2tx.aspx
        // list [i] = value; i is new list q is old list
        public string this[int i]
        {
            get { return this.ElementAt(i); }
            set {
                var placeHolderList = new SinglyLinkedList();

                for (var q = 0; q < this.Count(); q++)
                {
                   if (q==i)
                    {
                        placeHolderList.AddLast(value);
                    }
                    else
                    {
                        placeHolderList.AddLast(this.ElementAt(q));
                    }
                }

                first_node = new SinglyLinkedListNode(placeHolderList.First());
                for (var w = 1; w < placeHolderList.Count(); w++)
                {
                    this.AddLast(placeHolderList.ElementAt(w));
                }
            }
        }
Exemplo n.º 2
0
 public void AddAfter(string existingValue, string newValue)
 {
     int testForValue = -1;
     //throw new NotImplementedException();
     for (var i = 0; i < this.Count(); i++)
     {
         if (this.ElementAt(i) == existingValue)
         {
             testForValue = i;
             break;
         }
     }
     if (testForValue < 0)
     {
         throw new ArgumentException();
     }
     var placeHolderList = new SinglyLinkedList();
     for (var q = 0; q < this.Count(); q++)
     {
         placeHolderList.AddLast(this.ElementAt(q));
         if (q == testForValue)
         {
             placeHolderList.AddLast(newValue);
         }
     }
     first_node = new SinglyLinkedListNode(placeHolderList.First());
     for (var w = 1; w < placeHolderList.Count(); w++)
     {
         this.AddLast(placeHolderList.ElementAt(w));
     }
 }
 public void AddAfterItemThatDoesntExist()
 {
     SinglyLinkedList list = new SinglyLinkedList();
     list.AddLast("foo");
     list.AddLast("bar");
     list.AddAfter("cat", "grille");
 }
 public void AddFirstOnEmptyList()
 {
     SinglyLinkedList list = new SinglyLinkedList();
     list.AddFirst("foo");
     string[] expected = new string[] { "foo" };
     CollectionAssert.AreEqual(expected, list.ToArray());
 }
        // READ: http://msdn.microsoft.com/en-us/library/6x16t2tx.aspx
        public string this[int i]
        {
            get { return this.ElementAt(i); }
            set
            {
                var copy_of_list = new SinglyLinkedList();
                for (var j = 0; j < this.Count(); j++)
                {
                    if (j == i)
                    {
                        copy_of_list.AddLast(value);
                    }
                    else
                    {
                        copy_of_list.AddLast(this.ElementAt(j));
                    }
                }

                first_node = new SinglyLinkedListNode(copy_of_list.First());
                for (var o = 1; o < copy_of_list.Count(); o++)
                {
                    this.AddLast(copy_of_list.ElementAt(o));
                }
            }
        }
        // READ: http://msdn.microsoft.com/en-us/library/6x16t2tx.aspx
        public string this[int index]
        {
            get
            {
                return this.ElementAt(index);
            }
            set
            {
                var placeholder = new SinglyLinkedList();
                for(var j = 0; j < this.Count(); j++)
                {
                    if (j == index)
                    {
                        placeholder.AddLast(value);
                    } else
                    {
                        placeholder.AddLast(this.ElementAt(j));
                    }
                }
                first_node = new SinglyLinkedListNode(placeholder.First());

                for(var k = 1; k < placeholder.Count(); k++ )
                {
                    this.AddLast(placeholder.ElementAt(k));
                }
               }
        }
 public void ConstructorWithOneArgument()
 {
     SinglyLinkedList list = new SinglyLinkedList("foo");
     var expected = new string[] { "foo" };
     //throw new ArgumentException(list.ToArray().ToString());
     CollectionAssert.AreEqual(expected, list.ToArray());
 }
 public void SortingWithInt()
 {
     SinglyLinkedList<int> list = new SinglyLinkedList<int>(new int[] { 4, 1, 3, 2 });
     list.Sort();
     int[] expected = { 1, 2, 3, 4 };
     CollectionAssert.AreEqual(expected, list.ToArray());
 }
        // READ: http://msdn.microsoft.com/en-us/library/6x16t2tx.aspx
        public string this[int i]
        {
            get { return this.ElementAt(i); }
            set
            {
                var newList = new SinglyLinkedList();

                for (var x = 0; x < this.Count(); x++)
                {
                    if (x == i)
                    {
                        newList.AddLast(value);
                    }
                    else
                    {
                        newList.AddLast(this.ElementAt(x));
                    }
                }
                    first_node = new SinglyLinkedListNode(newList.First());
                    for (var w = 1; w < newList.Count(); w++)
                {
                    this.AddLast(newList.ElementAt(w));

                }
                }
        }
Exemplo n.º 10
0
        // READ: http://msdn.microsoft.com/en-us/library/6x16t2tx.aspx
        public string this[int i]
        {
            //uses the ElementAt function to get value (saves you from duplicating your code)
            get { return this.ElementAt(i); }
            set
            {
                //using a placeholder list helps save the values in order without having to do voodoo with the pointers
                var placeholderList = new SinglyLinkedList();
                for (var q = 0; q < this.Count(); q++)
                {
                    //if this is the place where you need to exchange the value, insert it here
                    if (q == i)
                    {
                        placeholderList.AddLast(value);
                    }
                    //otherwise, insert the value that was preexisting in the list
                    else
                    {
                        placeholderList.AddLast(this.ElementAt(q));
                    }
                }

                //now swap out the values in the placeholder list into the real list.
                //first swap the first value to clear out the old list
                first_node = new SinglyLinkedListNode(placeholderList.First());
                //then loop through the placeholder list and add the values to the real list in order
                for (var w = 1; w < placeholderList.Count(); w++)
                {
                    this.AddLast(placeholderList.ElementAt(w));
                }
            }
        }
        public void BuildSort()
        {
            if (!IsSorted())
            {
                SinglyLinkedList sortedList = new SinglyLinkedList(firstNode.Value);

            }
        }
 public void AddAfterLastItem()
 {
     SinglyLinkedList list = new SinglyLinkedList();
     list.AddLast("foo");
     list.AddLast("bar");
     list.AddAfter("bar", "grille");
     var expected = new string[] { "foo", "bar", "grille" };
     CollectionAssert.AreEqual(expected, list.ToArray());
 }
 public void AddFirstOnLongerList()
 {
     SinglyLinkedList list = new SinglyLinkedList();
     list.AddLast("foo");
     list.AddLast("bar");
     list.AddFirst("grille");
     var expected = new string[] { "grille", "foo", "bar" };
     CollectionAssert.AreEqual(expected, list.ToArray());
 }
 public void CaitlinsArrayCount()
 {
     SinglyLinkedList list = new SinglyLinkedList();
     list.AddLast("foo");
     list.AddLast("bar");
     list.AddLast("grille");
     string[] lexpected = new string[] { "foo", "bar", "grille" };
     int expected = lexpected.Length;
     string[] lactual = list.ToArray();
     int actual = lactual.Length;
     Assert.AreEqual(expected, actual);
 }
        public void AddAfter()
        {
            SinglyLinkedList list = new SinglyLinkedList();
            list.AddLast("foo");
            list.AddLast("grille");
            // NOTE: This assert isn't necessary.  It is merely here to remind you of / verify the state of the list prior to inserting the new node.
            var expected = new string[] { "foo", "grille" };
            CollectionAssert.AreEqual(expected, list.ToArray());

            list.AddAfter("foo", "bar");
            expected = new string[] { "foo", "bar", "grille" };
            CollectionAssert.AreEqual(expected, list.ToArray());
        }
        // READ: http://msdn.microsoft.com/en-us/library/6x16t2tx.aspx
        public string this[int i]
        {
            get {return this.ElementAt(i); }
            set
            {
                var placeholder = new SinglyLinkedList();
                for (var k = 0; k < this.Count(); k++)
                {

                    if (i == k)
                    {
                        placeholder.AddLast(value); //if this is the position this is the new value and don't save the existing value.
                    }else
                    {
                        placeholder.AddLast(this.ElementAt(k));
                    }
                }
                first_node = new SinglyLinkedListNode(placeholder.First());//assign first node to be the new list
                for (var j = 1; j < placeholder.Count(); j++)
                {
                    this.AddLast(placeholder.ElementAt(j));//add the remaining values in list
                }
            }
        }
        public void AddAfter(string existingValue, string value)
        {
            //Find the place of  existingValue
            int position = IndexOf(existingValue);
            if (position == -1)//if not in list throw exception
            {

                throw new ArgumentException();
            }
            var placeholder = new SinglyLinkedList(); //assigns a new list to hold values
            for (var i = 0; i < this.Count(); i++)
            {
                placeholder.AddLast(this.ElementAt(i));
                if (i == position)
                {
                    placeholder.AddLast(value); //find the correct position and add new value
                }
            }
            first_node = new SinglyLinkedListNode(placeholder.First());//assign first node to be the new list
            for (var j = 1; j < placeholder.Count(); j++)
            {
                this.AddLast(placeholder.ElementAt(j));//add the remaining values in list
            }
        }
 public void ToStringOnSingleItemList()
 {
     SinglyLinkedList list = new SinglyLinkedList();
     list.AddLast("foo");
     Assert.AreEqual("{ \"foo\" }", list.ToString());
 }
 public void ListRemoveWithDuplicateNodes()
 {
     SinglyLinkedList list = new SinglyLinkedList("foo", "bar", "grille", "bar");
     list.Remove("bar");
     var expected = new string[] { "foo", "grille", "bar" };
     CollectionAssert.AreEqual(expected, list.ToArray());
 }
 public void ToStringOnEmptyList()
 {
     SinglyLinkedList list = new SinglyLinkedList();
     Assert.AreEqual("{ }", list.ToString());
 }
 public void ToStringOnMultipleItemList()
 {
     SinglyLinkedList list = new SinglyLinkedList();
     list.AddLast("foo");
     list.AddLast("bar");
     list.AddLast("grille");
     Assert.AreEqual("{ \"foo\", \"bar\", \"grille\" }", list.ToString());
 }
 public void ToArrayOnSingleItemList()
 {
     SinglyLinkedList list = new SinglyLinkedList();
     list.AddLast("foo");
     string[] expected = new string[] { "foo" };
     CollectionAssert.AreEqual(expected, list.ToArray());
 }
 public void ToArrayOnEmptyList()
 {
     SinglyLinkedList list = new SinglyLinkedList();
     string[] expected = new string[] { };
     CollectionAssert.AreEqual(expected, list.ToArray());
 }
 public void SortUnsortedList()
 {
     SinglyLinkedList list = new SinglyLinkedList("foo", "bar");
     list.Sort();
     var expected = new string[] { "bar", "foo" };
     CollectionAssert.AreEqual(expected, list.ToArray());
 }
 public void CountChangesOnRemoval()
 {
     SinglyLinkedList list = new SinglyLinkedList("foo", "bar", "grille");
     list.Remove("foo");
     Assert.AreEqual(2, list.Count());
     list.Remove("bar");
     Assert.AreEqual(1, list.Count());
     list.Remove("grille");
     Assert.AreEqual(0, list.Count());
 }
 public void SortEmptyList()
 {
     SinglyLinkedList list = new SinglyLinkedList();
     list.Sort();
     var expected = new string[] { };
     CollectionAssert.AreEqual(expected, list.ToArray());
 }
 public void ConstructorWithMultipleArguments()
 {
     SinglyLinkedList list = new SinglyLinkedList("foo", "bar", "grille");
     var expected = new string[] { "foo", "bar", "grille" };
     CollectionAssert.AreEqual(expected, list.ToArray());
 }
 public void ListRemoveLastItemFromList()
 {
     SinglyLinkedList list = new SinglyLinkedList("foo", "bar", "grille");
     list.Remove("grille");
     var expected = new string[] { "foo", "bar" };
     CollectionAssert.AreEqual(expected, list.ToArray());
 }
 public void CountEmptyList()
 {
     SinglyLinkedList list = new SinglyLinkedList();
     Assert.AreEqual(0, list.Count());
 }
 public void ListRemoveNonExistentNode()
 {
     SinglyLinkedList list = new SinglyLinkedList("foo", "bar", "grille");
     list.Remove("cat");
     var expected = new string[] { "foo", "bar", "grille" };
     CollectionAssert.AreEqual(expected, list.ToArray());
 }