0
我想要創建一個循環鏈接列表的方法,本質上模仿令牌環網絡。我創建一個0或1的隨機數,如果它是0,它將刪除列表中的第一個項目。如果它是一個,它只是說他們仍然登錄。通過循環列表循環Java
所以我應該有這樣的事情..上 用戶B註銷 用戶A註銷
當列表是明確表示終止
問題是,它似乎
登錄的用戶總是讓一個特定的用戶......我怎樣才能做到這一點?
public void log(){
if(start==null)
System.out.println("List is empty..");
else{
Node temp=start;
System.out.print("->");
//get rid of each user with a similar method but with a random user removed....
while(temp.next!=null && count>0)
{
int r = rand.nextInt(2);
if(r==0)
{
deleteAt(0);
System.out.println(" OFF"+temp.data);
}
else if(r==1)
{
System.out.println(" ON "+temp.data);
}
temp=temp.next;
}
//System.out.println(counter);
}
}
public void deleteFirst() {
Node temp=start;
while(temp.next!=start){
temp=temp.next;
}
temp.next=start.next;
start=start.next;
count--;
}
public void deleteAt(int position){
Node current=start;
Node previous=start;
for(int i=0;i<position;i++){
if(current.next==start)
break;
previous=current;
current=current.next;
}
if(position==0)
deleteFirst();
else
previous.next=current.next;
count--;
}
可能應該驗證是否還有一個項目,因爲temp = temp.next引用本身讓我頭疼它的思考。 – 2014-10-17 21:01:23
那不僅僅是將溫度設定爲臨時溫度?不是很好的做法,但不會影響程序,我錯了嗎? – user3020002 2014-10-17 21:04:15
你的'deleteAt()'方法如何重新賦值'next'?特別是,當你回到一個項目列表,它是否使'lastItem.next = lastItem'? – azurefrog 2014-10-17 21:07:28