Я хочу создать 2 связанных списка в приведенном ниже коде: регистр 'F' и регистр 'S', чтобы создать 2 связанных списка.
outer:while(true) {
switch(in.next().charAt(0))
{
case 'F':
switch(in.nextInt())
{
case 1:
ll.insertF(in.nextInt());
break;
case 2:
ll.insertR(in.nextInt());
break;
case 3:
try {
ll.insertP(ll.head, in.nextInt());
}
catch(Exception e)
{
System.out.println("Cannot do");
}
break;
case 4:
ll.display();
break;
case 5:
ll.deleteR();
break;
case 6:
ll.reverse();
break;
case 7:
ll.concat(l2.head);
break;
default:
break;
}
break;
case 'S':
switch(in.nextInt())
{
case 1:
l2.insertF(in.nextInt());
break;
case 2:
l2.insertR(in.nextInt());
break;
case 3:
try {
l2.insertP(l2.head, in.nextInt());
}
catch(Exception e)
{
System.out.println("Cannot do");
}
break;
case 4:
l2.display();
break;
case 5:
l2.deleteR();
break;
case 6:
l2.reverse();
break;
case 7:
l2.concat(ll.head);
break;
default:
break;
}
break;
default:
System.out.println("Out");
break outer;
}
}
Получение результата: F 4 Пусто 1 Out
После перехода к первому случаю «F» внешнего переключателя и выбора случая 4, а затем он непосредственно переходит к внешнему переключателю и переходит к «умолчанию» внешнего переключателя. Но я не понимаю, почему он выходит из внутреннего переключателя после выполнения одного случая-4 внутреннего переключателя -F.
Используются следующие функции (если это необходимо):
public void insertF(int d)
{
Node temp= new Node(d);
temp.next=head;
head= temp;
}
public void insertR(int d)
{
Node temp= new Node(d);
if(head==null)
{
head=temp;
return;
}
Node cur=head;
while(cur.next!=null)
cur=cur.next;
cur.next=temp;
}
public void insertP(Node p,int d)
{
if(p==null) {
System.out.println("No");
return;
}
Node temp= new Node(d);
temp.next=p.next;
p.next=temp;
}
public void deleteR()
{
if(head==null)
{
System.out.println("Empty");
return;
}
if(head.next==null)
{
head=null;
return;
}
Node cur=head;
Node prev=null;
while(cur.next!=null)
{
prev=cur;
cur=cur.next;
}
cur=null;
prev.next=null;
}
public void reverse()
{
if(head==null ||head.next==null)
{
return;
}
Node cur=head;
Node temp=cur.next;
cur.next=null;
Node next;
while(temp.next!=null)
{
next=temp.next;
temp.next=cur;
cur=temp;
temp=next;
}
temp.next=cur;
head= temp;
System.out.println("Reversed");
}
public void concat(Node h2)
{
if((head==null && h2==null)||(h2==null))
{
return;
}
else if(head==null)
{
head=h2;
}
else {
Node cur=head;
while(cur.next!=null)
{
cur=cur.next;
}
cur.next=h2;
}
}
public void display()
{
if(head==null)
{
System.out.println("Empty");
return;
}
Node cur=head;
while(cur!=null)
{
System.out.print(cur.data+" ");
cur=cur.next;
}
System.out.println();
}