본질적으로 토큰 링 네트워크를 모방 한 순환 링크 된 목록을 반복하는 메소드를 만들고 싶습니다. 난 0 또는 1 중 하나를 임의의 번호를 만듭니다, 0이면 목록에서 첫 번째 항목을 삭제합니다. 그것이 하나 일 경우, 그들은 여전히 로그온 상태라고 말합니다.Loop through Circular 목록 Java
그래서 나는 이런 식으로 뭔가를해야한다 ..
사용자 A는 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가 스스로를 참조하면 나에게 두통이 있다고 생각하기 때문에 하나의 항목이 남아 있다면 유효성을 검사해야합니다. –
본질적으로 temp를 이미 temp로 설정하는 것뿐만 아니라? 좋은 연습은 아니지만 프로그램에 영향을주지는 않겠습니까? – user3020002
'deleteAt()'메서드는'next'를 어떻게 다시 할당합니까? 특히, 하나의 아이템리스트에 도달하면,'lastItem.next = lastItem'을 생성합니까? – azurefrog