链表
1 先建立一个 节点类(Node),里面有一个存放一个存放数据的字段,当然还要有一个指向下一个(或另外的,前一个)节点的指针
定义类如下:
public class Node
{
public Object Element;
public Node Link;
public Node()
{
this.Element = null;
this.Link = null;
}
public Node(Object element)
{
this.Element = element;
this.Link = null;
}
}
有了节点类,开始设计链表类了
一开始默认的构造函数,元素和下一个节点都设置为null,然后是有一个object的类型参数的构造函数!
第一个介绍的方法是PrintList(),也就是打印出这个链表上的元素
初始化一个节点,命名为curren,意思就是当前节点的意思,由于是刚刚new的,所以这个节点上null值,然后把一个已知的链表 头 节点给他,从而current获得了已知列表的头,然后逐一遍历这个链表的每个值,知道最后一个节点的link为null,由于链表的结构,最后一个节点的下一个节点一定是null,表示链表到头了,所以,有如下代码:
public string PrintList()
{
Node current = new Node();
current = this.Header;
string result = String.Format("链表中的元素是 | ");
while (current.Link != null)
{
result += " - " + current.Link.Element.ToString();
current = current.Link;
}
return result;
}
其中:
while (current.Link != null)
{
result += " - " + current.Link.Element.ToString();
current = current.Link;
}
while条件是 只要链表上的节点的下一个节点不是null ,就进入方法体,读出这个节点的元素,然后,把当前找到的这个节点再给这个current的节点,以此类推,知道整个链表全部被循环完!
这是实际调用linkedlist类上的代码
Node firstNode = new Node("Micheal");
Node SecondNode = new Node("Lucifer");
Node thirdNode = new Node("58");
firstNode.Link = SecondNode;
SecondNode.Link = thirdNode;
thirdNode.Link = null;
LinkedList myList = new LinkedList();
myList.Header.Link = firstNode;
lblLinkedList.Text = myList.PrintList();
阅读(565) | 评论(0) | 转发(0) |