C#数据结构之循环链表的实例代码_C#教程-查字典教程网
C#数据结构之循环链表的实例代码
C#数据结构之循环链表的实例代码
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:publicclassNode{publicobjectElement;publicNodeLink;publicNode...

复制代码 代码如下:

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#教程学习
    编程开发子分类