したがって、複数の変数を格納するためのリンクリストが必要なので、手作りのリンクリストADTを使用するだけでなく、collections.sort()からのJavaのリンクリストのコンパレータソートも必要です。
そこで、次のようにコードを編集してみました。
public class HLinkedList <HTreeNode> extends LinkedList <HTreeNode>
{
public class HTreeNode {
public HTreeNode left;
public HTreeNode right;
public HTreeNode next;
public int frequency;
public char value;
public String code;
public HTreeNode(int freq, char val, HTreeNode l, HTreeNode r, HTreeNode n, String code) // code is the path taken to this node, how to explain it in code?
{
value = val;
frequency = freq;
left = l;
right = r;
next = n;
code = ""; // just initialized ,but have to think through logic.
}
}
しかし、これを行うと、public class HLinkedList
(使用できない場合を除いて問題ありませんが Collections.sort(HList, comparatorA)
、Javaのリンクリストが必要な1行のコード)ではなく、
とにかく、上記のようなコードがある場合は、
cannot make static reference to non-static type HTreeNode in following line,
HTreeNodeの下に赤い裏地が付いています。LinkedListを拡張しようとしない場合、これは発生しません。
public static void insertIntoPosition(HTreeNode node, int position)
また、上記のエラーに続いて、のエラーが発生します
public HLinkedList() //constructor
{
head = null; //inital value
nItem = 0;//counter
}
コード内で複数回出現する場合は、非静的ヘッドを静的に参照できないことを示しています。通常、このようなものが表示されたら、[その頭を静的にする]をクリックしますが、この場合、さらに多くのエラーがポップアップし、すべての「頭」参照を指します。
LinkedListの拡張を試みて失敗したときに何が起こっているのか、または拡張しないことになっているのに何か他のことをしているのかどうかを知りたいのですが。