源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C#数据结构之循环链表的实例代码

  • 时间:2020-01-15 18:12 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#数据结构之循环链表的实例代码
[u]复制代码[/u] 代码如下:
    public class Node     {         public object Element;         public Node Link;         public Node()         {             Element = null;             Link = null;         }         public Node(object theElement)         {             Element = theElement;             Link = null;         }     }
[u]复制代码[/u] 代码如下:
public class LinkedList     {         //头结点         protected Node Header;         private int count;         public LinkedList()         {             count = 0;             Header = new Node("header");             Header.Link = Header;         }         public bool IsEmpty()         {             return (Header.Link == null);         }         public void MakeEmpty()         {             Header.Link = null;         }         public void PrintList()         {             Node current = new Node();             current = Header;             while (current.Link.Element.ToString() != "header")             {                 Console.WriteLine(current.Link.Element);                 current = current.Link;             }         }         private Node FindPrevious(object n)         {             Node current = Header;             while (!(current.Link == null) && current.Link.Element != n)             {                 current = current.Link;             }             return current;         }         private Node Find(object item)         {             Node current = new Node();             current = Header.Link;             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;             count++;         }         public void Remove(object n)         {             Node p = FindPrevious(n);             if (!(p.Link == null))             {                 p.Link = p.Link.Link;                 count--;             }         }         public void InsertFirst(object n)         {             Node current = new Node(n);             current.Link = Header;             Header.Link = current;             count++;         }         public Node Move(int n)         {             Node current = Header.Link;             Node tmp;             for (int i = 0; i <= n; i++)             {                 current = current.Link;             }             if (current.Element.ToString() == "header")             {                 current = current.Link;             }             tmp = current;             return tmp;         }         public Node GetFirst()         {             return Header;         }     }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部