2012-03-01 9 views
0

特定の問題の表現方法を決定するのにかなりの問題があります。基本的には、args[1]から与えられた番号のリスト/ベクトルが必要です。それらの各々は、0からまであるでしょう。Javaデータ構造の表現

可能なすべての引数の組み合わせを最初の要素の要素から検索するアルゴリズムを作成する必要があります。一例として、

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

この例から、1からあなたは3または5に行くことができるというようにして通過戻ってカントのように、私は、パスのすべての組み合わせを生成する必要があります同じミニパスだから私はすべてのパスを完全に検索する再帰的な方法を見つけなければならないだろうと推測しています。

私の最初のattempは、要素ごとに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ツリーが必要だと思っています。それはJavaのそれの実装はありませんですか?推測ではない場合は、私はそれのためのクラスを作る必要があります – d0pe

+0

私たちに 'matrix'の宣言を示して、それは正しいのではないように聞こえます...そしてあなたが私たちに示したコードにVectorはありません。もっと見る必要があります。ああ、同じコードでVectorとArrayListを混在させるのはちょっと奇妙です...ただArrayList – DNA

答えて

0

ArrayList<int>は使用できません。 ArrayList<Integer>のみです。ただし、ほとんどの場合、Javaは自動的にintIntegerの間で変換されます。

0

ArrayList<int>を指定することはできません。ArrayList<Integer>である必要があります。

リストには整数、文字列などのオブジェクトしか格納できません。Javaではintは真のオブジェクトではなくプリミティブ型です。

あなたの2番目のコードブロックはに煮詰めるます:

matrix[1].add(1); 

(例えば - 配列インデックスリストエントリと同じ値) - あなたは何を意味していることでしょうか?どのように値を渡しているかは完全にはっきりしていません。

関連する問題