以下は、ハフマン木を作成するプロジェクトのファイルからの抜粋です。「パブリック クラス HLinkedList」がそれ自体で初期化される場合、.next、.left、.right などの HTreeNode のメソッドの別のファイル (以下にも示されています) は、HLinkedList のファイルで問題なく動作します。「extends java.util.Abstract~」が配置されると、HTreeNode メソッドを参照できなくなり、HTreeNode を同じファイルにコピー アンド ペーストする方法に頼ったため、コードの最初の行でそのように表示されます。これらの両方が同じファイルにあるということは、HLinkedList.HTreeNode と HTreeNode の間で衝突 (私が思うに) を引き起こしているということです。
public class HLinkedList<HTreeNode> extends java.util.AbstractSequentialList<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.
}
}
HTreeNode head;
static int nItem;
public HLinkedList() //constructor
{
head = null; //inital value
nItem = 0;//counter
}
public void insertIntoPosition(HTreeNode node, int position) //inserts into position
{
//first, the case where it's already in the list.
HTreeNode currNode = head;
while(currNode.next != null)
{
if(currNode.value == node.value)
{
currNode.frequency++;
}
currNode = currNode.next;
}
if(currNode.value == node.value)
{
currNode.frequency++;
}
HTreeNode ファイル:
public class HTreeNode {
public static 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.
}
}