ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Javaの課題丸投げコミュの何にもわかっていないのです。お願いします。

  • mixiチェック
  • このエントリーをはてなブックマークに追加
「循環リスト」のクラスである CircularLinkedList.java を作成しなさい。

CircularLinkedList.java
import java.util.*;
public class CircularLinkedList {
Cell header; // リストの先頭の要素
public CircularLinkedList() {
header = new Cell("**List Head**");
header.next = header;
}

// 指定されたセルpの後に(新しいセルを生成して)要素xを追加します。
private void addNext(Cell p,Object x) {
Cell cell = new Cell(x);

// 自分で考えて書きなさい。

}
// (headerも含めた順番で)最後のセルを返します。
private Cell getLastCell() {
Cell p = header;
Cell q = p.next;

// 自分で考えて書きなさい。

// 指定されたセルpの次のセルを削除し、削除されたセルのデータを返します。
//(無ければnullを返します。)
private Object removeNext(Cell p) {
Cell q = p.next;
if (q == header) return null;
p.next = q.next;
return q.data;
}

// 空であれば true, 空でなければfalseを返す
public boolean isEmpty() { return header.next == header; }
// 先頭にxを追加します
public void addFirst(Object x) { addNext(header,x); }
// 最後にxを追加します。
public void addLast(Object x) { addNext(getLastCell(),x); }
// 先頭の要素を削除して返します。(なければnullを返します)
public Object removeFirst() { return removeNext(header); }
// 最後の要素を削除して返します。(なければnullを返します)
public Object removeLast() {
Cell p = header;
Cell q = p.next;
if (q == header) return null;
Cell r = q.next;

// 自分で考えて書きなさい。


}
public String toString() {
String s = "[";
for (Cell p=header.next; p!=header; p=p.next)
s += p.data + " ";
return s + "]";
}
}



いくつかのメソッドの本体の記述が省略されています。自分で考えて、クラス定義を完成させて下さい。

という問題です。

コメント(4)

Cellクラスの実装内容については書かれていませんが、
少なくとも、next、dataフィールドがあれば合格点が与えられると思われます。
本当に何もわかっていないのです。
↓は関係ありますか?

CellCircular.java
class CellCircular {
CellCircular next;
int value;
}




CellCircular ptr;
if (ptr != null) {
CellCircular p = ptr;
// 処理
p = p.next;
while (p != ptr) {
// 処理
p = p.next;
}
}


循環リストをたどる(ヘッダがある場合)
CellCircular head; // headがnullである場合を考慮しなくていいので記述が楽
for (CellCircular p = head.next; p!=head; p=p.next) {
// 処理
}


うーん。。。

いままでにないCellCircularクラスが出てきましたね。。

問題の内容って全部書いてますか?

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Javaの課題丸投げ 更新情報

Javaの課題丸投げのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。