前提・実現したいこと
MyLinkedList、ListTestクラスを編集せずにNewLinkedListクラスを使って、連結リストの先頭に要素を追加し、指定のデータを持つ要素を削除したい。
手詰まりになってしまったため、どなたかお助けしていただけますでしょうか。
よろしくお願いします。
該当のソースコード
ListTest
1public class ListTest { 2 public static void main(String[] args) { 3 NewLinkedList list = new NewLinkedList(); 4 list.deleteNode("orange"); //d0 5 list.appendToHead("durian"); //h0 d 6 list.deleteNode("orange"); //d1 7 list.appendToHead("cherry"); //h1 cd 8 list.deleteNode("orange"); //d2 9 list.appendToHead("banana"); //h2 bcd 10 list.deleteNode("orange"); //d3 11 list.appendToHead("apple"); //h3 abcd 12 list.deleteNode("orange"); //d4 13 System.out.println(list + "→[abcd]ならOK"); 14 list.deleteNode("durian"); //d10 abc 15 list.appendToTail("durian"); //t3 abcd 16 list.deleteNode("banana"); //d9 acd 17 list.deleteNode("apple"); //d8 cd 18 list.appendToTail("cherry"); //t2 cdc 19 System.out.println(list + "→[cdc]ならOK"); 20 list.deleteNode("cherry"); //d8 dc 21 list.deleteNode("cherry"); //d7 d 22 list.appendToTail("cherry"); //t1 dc 23 list.deleteNode("durian"); //d6 c 24 list.deleteNode("cherry"); //d5 - 25 list.appendToTail("apple"); //t0 a 26 System.out.println(list + "→[a]ならOK"); 27 } 28}
MyLinkedList
1// リストの要素 2 protected class Node { 3 Node next = null; // 次のリストへのリンク 4 String data; // 格納するデータ 5 6 // コンストラクター 7 Node(String d) { 8 data = d; 9 } 10 } 11 12 //リストの先頭を示すポインタ 13 Node head = new Node(null); 14 15 // リストの末尾に要素を追加する 16 public void appendToTail(String d) { 17 Node n = head; 18 while (n.next != null) { // 末尾を探す 19 n = n.next; 20 } 21 n.next = new Node(d); // 末尾にノードを生成して追加 22 System.out.println(d + " を末尾に追加しました。"); 23 } 24 25 // リストの内容を出力する 26 public String toString() { 27 StringBuilder st = new StringBuilder(); 28 st.append("[ "); 29 for (Node p = head.next; p != null; p = p.next) { 30 st.append(p.data + " "); 31 } 32 st.append("]"); 33 return st.toString(); 34 } 35 36}
NewLinkedList
1public class NewLinkedList extends MyLinkedList{ 2 3 //リストの先頭に指定要素を追加するメソッド 4 //追加後「~ を先頭に追加しました。」を出力する。 5 //ただし ~ は指定要素名で直後に半角空白を入れる(以下同様)。 6 public void appendToHead(String d) { 7 System.out.println(d + " を先頭に追加しました。"); 8 } 9 10 //指定データを持つ要素を削除するメソッド 11 //指定データがあれば削除して「~ を削除しました。」を出力する。 12 //ただし指定データが複数ある時は、先頭のものを1 つだけ削除する。 13 //指定データが無ければ「~ は存在しません。」を出力する。 14 public void deleteNode(String d) { 15 16 } 17}
回答1件
あなたの回答
tips
プレビュー