2017-11-19 18 views
0

Javaリンクリストオブジェクトを使用せずに2重リンクリストを作成したいと考えています。私は私が2次元配列でそうすることができるかどうかを確認したい:2d配列を作成してリンクリストをエミュレートする

  • 最初の次元がエントリされ、そして
  • 二次元が前方ポインタ、後方ポインタ、との値であり、ノードここで

は、私が表示されなく必ず私が正しく

  1. それをやっている場合はノード
  2. を追加し、リスト
  3. アドオンの途中からノードを削除したいものですリストの中央にあるノード
  4. リンクリストの最初と最後のノードを入れ替えます。

ここに私のコードですが、どんな助けでも大歓迎です。

public class TwoDArrayLinkedList { 

static class Node { 
    Node forwardPointer; 
    Node backwardPointer; 
    int data; 
} 

static void display(Node head) { 
    Node RightPointer; 
    Node LeftPointer = head; 

    while (LeftPointer != null) { 
     RightPointer = LeftPointer; 

     while (RightPointer != null) { 
      System.out.print(RightPointer.data + " "); 
      RightPointer = RightPointer.forwardPointer; 
     } 
     System.out.println(); 
     System.out.println(); 
     System.out.println(); 
     LeftPointer = LeftPointer.backwardPointer; 
    } 
} 

static Node construct(int array[][], int i, int j, int m, int n) { 

    if (i > n - 1 || j > m - 1) 
     return null; 

    Node tempNode = new Node(); 
    tempNode.data = array[i][j]; 
    tempNode.forwardPointer = construct(array, i, j + 1, m, n); 
    tempNode.backwardPointer = construct(array, i + 1, j, m, n); 
    return tempNode; 
    } 


public static void main(String args[]) { 
     int array[][] = { { 12, 22, 33 }, 
        { 44, 54, 61 }, 
        { 72, 82, 93 } }; 
    int m = 3, n = 3; 
    Node head = construct(array, 0, 0, m, n); 
    display(head); 
    } 
} 
+0

ようこそ。 [このサイトへのツアー](https://stackoverflow.com/tour)にアクセスし、[質問する]をご覧ください。(https://stackoverflow.com/help/how-to-ask)現時点ではあなたが私たちから何を求めているのかは不明です。 – yacc

+0

ありがとう、yacc。私の質問は、1)ノードを追加する2)リストの中央からノードを削除する3)リストの中央にノードを追加する4)リンクされたリストの最初と最後のノードを入れ替える。私はこの時点で自分のコードで2、3、4を達成していないように感じます。ヘルプと暖かい歓迎ありがとう! –

+0

1つに複数の質問をしないでください。項目リストが広すぎるため、正確な回答が得られません。意見や改善のためにhttps://codereview.stackexchange.com/で尋ねたいかもしれません。 – yacc

答えて

0

you are doing this ?

あなたは、各ノードは、その次の右と下のノードに接続されるようにリンクリスト行列のコードを書かれている、それは二重リンクリストを作っていません。

2D配列を二重リンクリストとして作成するには、各2D配列要素を走査する必要があり、値ごとに新しいノードを作成し、前方参照と後方参照を割り当てる必要があります。 this might help you

関連する問題