簡體   English   中英

如何將鏈表添加到特里葉?

[英]How can I add a linkedlist to a trie leaf?

我在 java 中有一個字典項目。它將單詞添加到特里樹中,然后我需要在我輸入的每個單詞的末尾添加一個鏈表以保存含義。 我為特里樹和鏈表制作了兩種節點,如下所示。

static class TrieNode{
        TrieNode[]children=new TrieNode[29];
        boolean IsEnd;
        TrieNode(){
            IsEnd=false;
            for(int i=0;i<29;i++)
                children[i]=null;
        }
    }
    static class Meaningnode{
        String Meaning;
        Meaningnode next;
        public Meaningnode(String Meaning){
            this.Meaning=Meaning;
        }
    }

26 個字母的 29 個鏈接和一個指向父級和空格 ' ' 的鏈接和一個指向列表的鏈接;

在您對 29 個條目的解釋中,您寫道:

26 個字母的 29 個鏈接,一個指向父級和空格的鏈接 ' ' 和一個指向列表的鏈接;

這里的問題是“列表中的一個”將違反預期的類型。 聲明是:

TrieNode[]children=new TrieNode[29];

但是您想為一個Meaningnode而不是TrieNode使用一個條目。 那是不對的。 相反,只需為此目的專用一個單獨的屬性,就像您已經為isEnd擁有一個單獨的屬性一樣。 我什至也會為父母單獨輸入一個條目(如果你真的需要父母參考)。

最后,為Meaningnode添加一個構造函數,它可以接受第二個參數來指定next

static class Meaningnode {
    String Meaning;
    Meaningnode next;

    public Meaningnode(String Meaning) {
        this.Meaning = Meaning;
    }

    public Meaningnode(String Meaning, Meaningnode next) {
        this.Meaning = Meaning;
        this.next = next;
    }
}


static class TrieNode {
    TrieNode[] children = new TrieNode[27];
    boolean IsEnd;
    TrieNode parent;
    Meaningnode meaning;

    TrieNode() {
        IsEnd = false;
        parent = null;
        meaning = null;
        for (int i = 0; i < 27; i++)
            children[i] = null;
    }

    // Method to prepend a meaning to the list of meanings:
    addMeaning(string meaning) {
        this.meaning = new Meaningnode(meaning, this.meaning);
    }
    
    // Other methods...
    // ...
}
static class Node{
        String mean;
        Node next;
        Node(String s){
            mean=s;
            next=null;
        }
    }
static class TrieNode{
        TrieNode[]children=new TrieNode[29];
        boolean IsEnd;
        Meanings_Linked_List list=new Meanings_Linked_List();
        TrieNode(){
            IsEnd=false;
            for(int i=0;i<29;i++)
                children[i]=null;
        }
    }

我知道它還沒有完成,只是因為項目我讓它變成這樣並修復它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM