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);
        }
    }

   

}

posted on 2010-10-20 14:28  风雨者2  阅读(277)  评论(0编辑  收藏  举报

导航