Node类:
public class Node
{public object Element;
public Node Link;
public Node()
{
Element = null;
Link = null;
}
public Node(object theElement)
{
Element = theElement;
Link = null;
}
}
LinkedList类:
public class LinkedList{
protected Node header;
public LinkedList()
{
header = new Node("header");
}
private Node Find(object item)//搜索每个节点的Element字段,直到找打匹配的为止
{
Node current = new Node();
current = header;
while (current.Element!=item)
{
current = current.Link;
}
return current;
}
public void Insert(object newItem, object after)//向链表插入一个节点
{
Node current = new Node();
Node newNode = new Node(newItem);
current = Find(after);
newNode.Link = current.Link;
current.Link = newNode;
}
private Node FindPrevious(object n)
{
Node current = header;
while (!(current.Link==null)&&(current.Link.Element!=n))
{
current = current.Link;
}
return current;
}
public void Remove(object n)//移除链表内数据项的第一次出现
{
Node p = FindPrevious(n);
if (!(p.Link==null))
{
p.Link = p.Link.Link;
}
}
public void PrintLisr()//显示连表内每一个节点的数据
{
Node current = new Node();
current = header;
while (!(current.Link==null))
{
Console.WriteLine(current.Link.Element);
current = current.Link;
}
}
}