我有一个功能,应该组织一个词干词典。我插入了一个函数调用,然后假设将其以正确的字母顺序放置。将其添加到列表的前面和中间是可行的,但不能添加到后面。我查看了几个消息源,但我不知道出了什么问题。

void dictionary::insert(string s) {
    stem* t = new stem;

    t->stem = s;
    t->count =0;
    t->next = NULL;

    if (isEmpty()) head = t;
    else {
        stem* temp = head;
        stem* prev =  NULL;

        while (temp != NULL) {
            if (prev == NULL && t->stem < temp ->stem) {
                head = t;
                head->next = temp;
            }
            prev = temp;
            temp = temp->next;

            if(t->stem > prev->stem && t->stem < temp->stem ){
                prev->next =t;
                t->next=temp;
            }
        }

        if(temp == NULL && t->stem > prev->stem){
            prev->next=t;
        }
    }
}

最佳答案

语句if(temp-> next = NULL)不会产生布尔值,而是赋值。这就是为什么在列表末尾的插入似乎无效的原因。

关于c++ - C++:链接列表排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12830221/

10-11 17:08