What we going to make is a linked list. Yeah I know there is a class which does the same as a linked list called ArrayList, but we (as a diehard C# programmer) want absolute control and knowledge of what we use.
First what is a linked list?
A linked list is a dynamically sized array. An array has a size and you have to deal with it you cant just resize an array. Unlike an array a linked list has no absolute size. It can hold as many variables as you want it to.
When to use?
In circumstances where you dont know how many variables you want to add. For example it could be just 1 or it could be 1000. In such a situation its stupid to make an array of 10000 it would be a waist of memory.
Now a design of our classes LinkedList and Node.
Note: Prefix i is for an integer and a prefix n is for a Node.
In the Node class there is a Previous and a Next Node. Because of that all Nodes are linked to eachother (thats why they called it a linkedlist).
Here is the Node class
public class Node
{
protected Node nPrevious;
protected Node nNext;
protected object Object;
#region Properties
public object Value
{
get
{
return Object;
}
set
{
Object = value;
}
}
public Node Previous
{
get
{
return nPrevious;
}
set
{
nPrevious = value;
}
}
public Node Next
{
get
{
return nNext;
}
set
{
nNext = value;
}
}
#endregion
public Node(Node PrevNode, Node NextNode, object obj)
{
nPrevious = PrevNode;
nNext = NextNode;
Object = obj;
}
}
As you can see there isnt much of a surprise if you studied the class design.
Next thing the LinkedList