这本书里面有许多基础的知识

源代码在线查看: 单向链表类.txt

软件大小: 1201 K
上传用户: jjkk778
关键词:
下载地址: 免注册下载 普通下载 VIP

相关代码

				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;
				  }
				}
				
							

相关资源