Csharp/C Sharp/Collections Data Structure/Your LinkedList — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 14:39, 26 мая 2010
Implements the LinkedList data structure
<source lang="csharp"> 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(); }
}
</source>