繁体   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