C#单链表
using System; using System.Collections.Generic; using System.Text; namespace bishi { public class Node { public object element; public Node link; public Node() { element = null; link = null; } public Node(object item) { element = item; this.link = null; } } public class LinkList { public Node head; public LinkList Next; public LinkList() { head = new Node("header"); } public Node findNode(object item) { Node current = new Node(); current=head; while (current.element != item) { current = current.link; } return current; } public void insertNode(object item,object after) { Node current = new Node(); Node newNode=new Node(item); current = findNode(after); if (current != null) { newNode.link = current.link; current.link = newNode; } } public void Del(object item) { Node current = new Node(); current = findPre(item); Node pre = new Node(); // Node after = new Node(); if (current != null) current.link = current.link.link; } public Node findPre(object item) { Node current = head; while (!(current.link.element != item) && (current.link != null)) { current = current.link; } return current; } public void PrintList() { Node current = new Node(); current = this.head; while (current != null) { Console.WriteLine(current.element); current = current.link; } } } class pro { static void Main(string[] args) { Node firstNode = new Node("firstNode"); Node secNode = new Node("secNode"); Node thiNode = new Node("11"); firstNode.link = secNode; secNode.link = thiNode; thiNode.link = null; LinkList myList = new LinkList(); myList.head.link = firstNode; myList.PrintList(); myList.insertNode("hanwujibaby","firstNode"); myList.PrintList(); myList.Del("hanwujibaby"); myList.PrintList(); System.Threading.Thread.Sleep(8000); } } }