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