Added indexing methods to linked list
This commit is contained in:
		@@ -42,9 +42,26 @@ namespace C_.Datastructures
 | 
			
		||||
            return list;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public T? this[int i]
 | 
			
		||||
        {
 | 
			
		||||
            get {
 | 
			
		||||
                Node<T> node = Traverse(i); 
 | 
			
		||||
                if (node != null) return node.Value;
 | 
			
		||||
                return default(T);
 | 
			
		||||
            }
 | 
			
		||||
            set
 | 
			
		||||
            {
 | 
			
		||||
                if (i < Count)
 | 
			
		||||
                {
 | 
			
		||||
                    Node<T> node = Traverse(i);
 | 
			
		||||
                    node.Value = value;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public void Add(T value){
 | 
			
		||||
 | 
			
		||||
        public void Append(T value){
 | 
			
		||||
            Node<T> newItem = Node<T>.Create(value, default(Node<T>));
 | 
			
		||||
            Count++;
 | 
			
		||||
 | 
			
		||||
@@ -96,5 +113,21 @@ namespace C_.Datastructures
 | 
			
		||||
            }
 | 
			
		||||
            return node;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private Node<T>? Traverse(int n)
 | 
			
		||||
        {
 | 
			
		||||
            //Start at given point in list
 | 
			
		||||
            Node<T>? node = Head;
 | 
			
		||||
            if (node != null)
 | 
			
		||||
            {
 | 
			
		||||
                //Continue to end of list
 | 
			
		||||
                for (int i = 0; i < n; i++)
 | 
			
		||||
                {
 | 
			
		||||
                    if (node.Next == null) return null;
 | 
			
		||||
                    node = (Node<T>)node.Next;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            return node;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user