2012-03-01 4 views
0

특정 문제를 나타내는 방법을 결정하는 데 상당한 문제가 있습니다. 기본적으로 args[1]에서 주어진 번호의 목록/벡터가 필요할 것입니다. 그들 각각은 0에서 최대 일부 args[2]까지 가질 것입니다.Java 데이터 구조 표현

첫 번째 요소 내의 가능한 모든 인수 조합을 검색하는 알고리즘을 만들어야합니다. 예를 들어

:

1 -> 3 5 
2 -> 1 3 4 5 
3 -> 2 
4 -> 2 5 1 
5 -> 1 3 4 

이 예제에서, 나는 당신이 3 또는 5로 갈 수있는 등 및 캔트를 통해 돌아가 1에서와 같이, 경로의 모든 조합을 생성해야합니다 동일한 미니 경로이므로 모든 경로를 완전히 검색하는 재귀 적 방법을 찾아야합니다.

첫 번째 시도는 각 요소에 대해 arraylist를 사용하여 1에서 5까지의 벡터를 만드는 것이었지만 목록을 초기화하고 값을 액세스하는 데 문제가 있습니다.

for (int i=0; i < total; i++) { 
    matrix[i] = new ArrayList<int>(total); 
} 

for (int i=0; i < total_paths; i++) { 
    matrix[Integer.parseInt(args[i])].add(Integer.parseInt(args[i])); 
} 

모든 의견을 환영합니다.

+0

이 숙제입니까? 그렇다면 태그를 붙이십시오. 값을 초기화하고 액세스하는 실제 문제는 무엇입니까? – DNA

+0

그것은 배열이 필요하지만 벡터를 찾습니다. 하지만이 문제를 해결하기 위해 n-ary 트리가 필요하다고 생각합니다. 거기에 자바의 모든 구현이 무엇입니까? 짐작하지 않는다면 클래스를 만들어야 할 것입니다 – d0pe

+0

'matrix' 선언문을 보여주세요 - 그게 옳지 않은 것 같은데 ... 우리가 보여준 코드에는 Vector가 없습니다. 우리는 더 많이 볼 필요가있다. 오, 그리고 동일한 코드에서 Vector와 ArrayList를 혼합하는 것은 약간 이상합니다 ... 그냥 ArrayList를 사용합니다. – DNA

답변

0

ArrayList<int>을 가질 수 없습니다. ArrayList<Integer>. 그러나 대부분의 경우 Java는 intInteger 사이에서 자동으로 변환됩니다.

0

ArrayList<int>을 가질 수 없습니다. ArrayList<Integer>이어야합니다.

목록에는 정수, 문자열 등의 객체 만 저장할 수 있습니다. Java에서는 int이 실제 객체가 아닌 원시 유형입니다.

두 번째 코드 블록으로 귀결됩니다

matrix[1].add(1); 

(예 - 배열 인덱스 목록 항목과 같은 값) - 당신은 무엇을 의미하는 것입니다? 값을 어떻게 전달하는지 완전히 명확하지 않습니다 ...