在链表中插入元素
public void InsertNode(Object newItem, Object after)
{
Node current = new Node();
Node newNode = new Node(newItem);
current = this.Find(after);
if (current != null)
{
newNode.Link = current.Link;
current.Link = newNode;
}
}
新建一个当前的节点,再将要插入值构造成节点,然后通过Find()方法,找到那个节点(我们要把新节点,放到哪个节点后面的那个节点),再运行后,检查current是否为空,如果不为空说明,已经找到了,然后,
newNode.Link = current.Link;
把找到的这个节点的link,给这个新值的link(这个步骤是把原来链表上,原来指向的下一个节点的指针,然后赋给新节点的link,这样,新节点,就可以指向原来老节点的下一个节点了)
current.Link = newNode;
这个就是把当前找到的这个节点的link指向了新的节点
这样,这个过程就是先打掉原来指向后面的链接,然后把原来的link给新节点的link,然后把新的节点给原来那个节点,就形成了插入一个新节点了!
private Node Find(Object item)
{
Node current = new Node();
current = Header;
while (item != current.Element)
{
current = current.Link;
}
return current;
}
调用代码如下
Node firstNode = new Node("Micheal");
Node SecondNode = new Node("WeiWei");
Node thirdNode = new Node("58");
firstNode.Link = SecondNode;
SecondNode.Link = thirdNode;
thirdNode.Link = null;
LinkedList myList = new LinkedList();
myList.Header.Link = firstNode;
myList.InsertNode("Scofield", "Micheal");
lblLinkedList.Text = myList.PrintList();
阅读(423) | 评论(0) | 转发(0) |