用java循环列表和ArrayList实现约瑟夫环(带密码问题)

//循环列表

package 容器;

import java.util.Scanner;

public class 链表 {
	//定义结点
       static class Node{ 
    	   int x;
    	   int sum;
    	   Node next;
    	   public Node(int x,int sum){
    		   this.x=x;
    		   this.sum=sum;
    	   }
       }
     public static void main(String []agrs){
    	 Scanner sc=new Scanner(System.in);
    	 System.out.println("请输入初始值M,总人数N:");
    	 int M=sc.nextInt();
    	 int N=sc.nextInt();
    	 System.out.println("请输入各自的密码:");
    	 //初始化头节点和循环链表,尾结点
    	 Node first=new Node(1,sc.nextInt());
    	 Node end=first;
    	 for(int i=2;i<=N;i++)
    	 {	 
    		 Node firm=new Node(i,sc.nextInt());
    		 end.next=firm;
    		 end=end.next;
    		 //end=(end.next=new Node(i,sc.nextInt()));
    	 }
    	 end.next=first;//首尾相接构成循环链表
    	 System.out.println("出列顺序为:");
    	 while(end!=end.next)
    	 {
    		 for(int i=1;i

//ArrayList

package 容器;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class list {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		ArrayList list = new ArrayList();
		System.out.println("请输入M的初始数值:");
		int M = sc.nextInt();
		System.out.println("请输入总人数:");
		int N = sc.nextInt();
		int []sum=new int[1010];
		for(int i=0 ;i

你可能感兴趣的:(Java数据结构)