这本书里面有许多基础的知识
源代码在线查看: 单向链表类.txt
软件大小: |
1201 K |
上传用户: |
jjkk778 |
|
|
关键词: |
|
下载地址: |
免注册下载 普通下载
|
|
public class SinglyLinkedList //单向链表类
{
protected int count; //变量count用来标识链表长度
protected SinglyLinkedListElement head; //变量head表示链表头
public SinglyLinkedList() //SinglyLinkedList 的构造方法
{
head=null;
count=0;
}
public boolean isEmpty() //方法isEmpty()的作用是判断链表是否为空
{
return count==0;
}
public void addToHead(Object value) //方法addToHead()的作用是在链表头加入一个元素
{
head=new SinglyLinkedListElement(value);
count++;
}
//方法removeFromHead()的作用是从链表头删除一个元素
public Object removeFromHead()
{if (count==0)
return null;
SinglyLinkedListElement temp=head;
head=head.next();
count--;
return temp.value();
}
public Object peek() //方法peek()的作用是取得链表头的值,不删除。
{if (count)==0
return null;
return head.value();
}
public void addToTail(Object value) //方法addToTail()的作用是在链表尾部加上一个结点
{
SinglyLinkedListElement temp=new SinglyLinkedListElement(value,null);
if(head!=null)
{
SinglyLinkedListElement finger=head;
while(finger.next()!=null)
{
finger=finger.next();
}
finger.setNext(temp);
}
else head=temp;
count++;
}
public Object removeFromTail() //方法removeFromTail()的作用是从链表尾部删除一个元素
{ if (count==0)
return null;
SinglyLinkedListElement finger=head;
SinglyLinkedListElement previous=null;
while(finger.next()!=null)
{
previous=finger;
finger=finger.next();
}
if(previous==null)
{
head=null;
}
else
{
previous.setNext(null);
}
count--;
return finger.value();
}
public boolean contains(Object value) //方法contains()的作用是判断某个特定的元素是否在链表中
{
SinglyLinkedListElement finger=head;
while(finger!=null && !finger.value().equals(value))
{
finger=finger.next();
}
return finger!=null;
}
public Object remove(Object value) //方法remove的作用是从链表中删除特定值的元素
{
SinglyLinkedListElement finger=head;
SinglyLinkedListElement previous=null;
while(finger!=null && !finger.value().equals(value))
{ previous=finger;
finger=finger.next();
}
if(finger!=null)
{
if(previous==null)
{
head=finger.next();
}
else
{
previous.setNext(finger.next());
}
count--;
return finger.value();
}
return null;
}
public void clear() //方法clear()的作用是清空链表
{
head=null;
count=0;
}
}