C语言

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

时间:2025-03-15 14:28:15 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#实现轮询算法实例代码05-31

C#实现协同过滤算法的实例代码06-19

c#实现sunday算法实例08-07

PHP实用的代码实例08-12

Java for循环的写法代码08-01

C语言的循环链表和约瑟夫环09-29

学习php分页代码实例10-11

关于循环的java代码示例09-26

C语言数据结构实现链表逆序并输出06-23