package jxau.blueDot.liyixiang;
/**
*
* @author lyx
* @下午10:21:21
* @TODO:
* 单链表的增删查等操作
*/
public class LinkList {
private Link first;
public LinkList(Link first) {
super();
first = null;
}
//判断链表是否为空
public boolean isEmpty(){
return (first==null);
}
//链表增加
public void insertFirst(int id,double dd){
Link newLink = new Link(id,dd);
newLink.next = first; //newLink --------> old first
first = newLink; //first --------> newLink
}
//链表删除
//就是将删除节点的前一节点的指针指向后一节点,返回删除节点
public Link deleteFirst(){
Link temp = first;
first = first.next;
return temp;
}
//显示链表
public void displayList(){
Link current = first;
while(current != null){
current.displayLink();
current = current.next;
}
}
//根据条件查询节点
public Link find(int key){
Link current = first;
while(current.iData != key){
if(current.next == null){
return null;
}else {
current = current.next;
}
}
return current;
}
//根据条件删除节点
public Link delete(int key){
Link current = first;
Link previous = first;
while(current.iData != key){
if(current.next == null){
return null;
}else {
previous = current;
current = current.next;
}
}
if(current == first){
first = first.next;
}else {
previous.next = current.next;
}
return current;
}
}
转载于:https://my.oschina.net/liyixiangBlog/blog/274006