如何在链表C ++中搜索最小字符串

时间:2017-11-17 05:33:39

标签: c++

我正在编写一个函数,该函数将遍历电影标题的链接列表并返回最接近字母表开头的函数。我似乎在某个地方犯了一个逻辑错误,但我似乎无法找到它。

string StringList::minimum() 
{
    StringNode *temp = new StringNode;
    temp = head;
    string first = temp->data;

    while(temp->next != NULL)
    {
        if(first[0] > temp->data[0])
        {
            first = temp->data;
            temp = temp->next;
        }
    }
    else
    {
        temp = temp->next;
    }

    return first;
}

非常感谢任何见解。

1 个答案:

答案 0 :(得分:0)

在这种情况下,StringNode *temp = new StringNode;将创建必要的分配和内存泄漏。你只需要声明一个指针StringNode *temp = head;

从头开始按照以下步骤浏览链接:

string StringList::minimum() 
{
    string minimum;
    StringNode *temp = head;
    if (!temp) return minimum;
    minimum = temp->data[0];
    while(temp->next != NULL)
    {
        temp = temp->next;
        if(temp && minimum < temp->data[0])
            minimum = temp->data[0];
    }
    return minimum;
}