Mega Code Archive

 
Categories / C# / Collections Data Structure
 

Implements the LinkedList data structure

using System; class Node {   internal Object data;   internal Node next;     public Node(Object o, Node n){     data = o;     next = n;   } } public class LinkedList {   private Node head;   private Node previous;   private Node current;      public LinkedList() {     head = null;     previous = null;     current = null;   }   public bool IsEmpty() {     return head == null;   }   public void Insert(Object o) {     Node n = new Node(o,current);     if (previous == null)       head = n;     else        previous.next = n;     current = n;   }   public void Remove() {     if (head != null){       if (previous == null)         head = head.next;       else          previous.next = current.next;       current = current.next;     }   }   public Object GetData(){     if (current != null)        return current.data;     return null;   }   public bool AtEnd() {     return current == null;   }   public void Advance(){     if (!AtEnd()){       previous = current;       current = current .next;     }   }   public void Reset() {     previous = null;     current = head;   }   public void Display() {     Reset();     if (head != null)        do {         Console.WriteLine("   {0}", GetData());         Advance();       }while (!AtEnd());   }       public static void Main() {     LinkedList list = new LinkedList();     Console.WriteLine("Is Empty {0}",list.IsEmpty());     list.Insert("A");     list.Insert("B");     list.Insert("C");     Console.WriteLine("The original list is:");     list.Display();     list.Reset();     list.Advance();     Console.WriteLine("The current element is {0}",list.GetData());     list.Remove();     list.Display();   } }