-1

Java の優先度リンク リストで検索操作を実行したいのですが、そのための検索および削除メソッドを既に作成していますが、これらのメソッドをメイン関数に呼び出す際に問題に直面していますか? これまでの私のコードは次のとおりです。

import java.util.*;

クラス ノード {

public static Node next = null;
public static int item = 0;

public Node(int item) {
    this.item = item;
}

}

パブリック クラス メイン {

static PriorityQueue<String> stringQueue;

public static void main(String[] args) {

    stringQueue = new PriorityQueue<String>();

    stringQueue.add("1");
    stringQueue.add("2");
    stringQueue.add("3");
    stringQueue.add("6");
    stringQueue.add("6");
    stringQueue.add("5");
    stringQueue.add("9");
    stringQueue.add("8");
    stringQueue.add("7");
    stringQueue.add("4");

    while (stringQueue.size() > 0)
        System.out.println(stringQueue.remove());
    Node head = null;

}

public static Node searchNodeFIFO(Node head, int item) {
    System.out.println("In Search Node");

    Node cHead = head;

    while (cHead != null) {
        if (cHead.item == item)
            return cHead;

        cHead = cHead.next;
    }

    return null;
}

public Node deleteNodeFIFO(Node head, int item) {
    System.out.println("In Delete Node");

    if (head.item == item)
        return head.next;

    Node cNode = head;
    Node nNode = head.next;

    while (nNode != null) {
        if (nNode.item == item) {
            cNode.next = nNode.next;
            break;
        } else {
            cNode = nNode;
            nNode = nNode.next;
        }
    }

    return head;
}

public void printLinkList(Node head) {
    while (head != null) {
        System.out.println(head.item);
        head = head.next;
    }
}

}

4

1 に答える 1

1

私は大げさな推測をして、それがあなたのNodeクラスの属性によるものだと考えます。
それらを静的として宣言するのはなぜですか?
これにより、 のすべてのインスタンスがNode同じ属性 (valueおよびnext) 値を共有します。

それらを保持する構造内のすべてのアイテムは同じになります。

属性宣言staticから修飾子を削除しようとしています。Node

静的修飾子を使用する方法と場所を見る

于 2013-04-26T06:44:10.173 に答える