C语言 百文网手机站

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

时间:2021-04-15 13:49:40 C语言 我要投稿

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

  很多人都不知道C#数据结构中循环链表的代码怎么写,下面小编为大家整理了C#数据结构之循环链表的实例代码,希望能帮到大家!

  复制代码 代码如下:

  public class Node

  {

  public object Element;

  public Node Link;

  public Node()

  {

  Element = null;

  Link = null;

  }

  public Node(object theElement)

  {

  Element = theElement;

  Link = null;

  }

  }

  复制代码 代码如下:

  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;

  }

  }

【C#数据结构之循环链表的实例代码】相关文章:

c#实现轮询算法实例代码09-23

C#实现协同过滤算法的实例代码09-21

C语言的循环链表和约瑟夫环10-05

关于循环的java代码示例11-28

实用的PHP语言实例代码09-06

java中通用的线程池实例代码11-29

C++画正弦线实例代码09-29

有关Java开发中常用到For循环的实例11-28

C语言循环队列的表示与实例详解11-19