linkedlist.java
来自「用循环链表求解约瑟夫(josephus)问题 求解约瑟夫(josephus)问」· Java 代码 · 共 48 行
JAVA
48 行
public class LinkedList{
public ListNode header;
public LinkedList(){
header=new ListNode(null);
}
public boolean isEmpty()
{return header.next==null;}
public void makeEmpty()
{header.next=null;}
public LinkedListItr zeroth()
{return new LinkedListItr(header);}
public LinkedListItr first()
{ return new LinkedListItr(header.next);}
public static void printList( LinkedList theList ){
if (theList.isEmpty())
System.out.print("Empty list") ;
else
{ LinkedListItr itr = theList.first( );
for( ; ! itr.isPastEnd( ); itr. advance( ) )
System.out.print( itr.retrieve( ) + " ") ;
}
System.out.println( );
}
public LinkedListItr find (Object x){
ListNode itr=header.next;
while(itr!=null&&!itr.element.equals(x))
itr=itr.next;
return new LinkedListItr(itr);
}
public void remove(Object x){
LinkedListItr p=findPrevious(x);
if(p.current.next!=null)
p.current.next=p.current.next.next;
}
public LinkedListItr findPrevious(Object x){
ListNode itr =header;
while(itr.next!=null&&!itr.next.element.equals(x))
itr=itr.next;
return new LinkedListItr(itr);
}
public void insert(Object x,LinkedListItr p){
if(p!=null&&p.current!=null)
p.current.next=new ListNode(x,p.current.next);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?