Копирование определенных значений между структурами

-6

Используя C++ и не используя функции контейнеров STL, я пытаюсь скопировать значения из одной структуры в другую определенным образом.

У меня есть такая структура (односвязный список), и вот как я добавляю в нее новые элементы:

struct Node {
Node *next;
std::string name;
std::string surname;
};

void AddElement(Node *&head, const std::string &name, const std::string &surname)
{
head = new Node {head, name, surname};
}

Пример использования:

Node *pointer = nullptr; 
AddElement(pointer, "Alex", "Smith");
AddElement(pointer, "Robert", "Johnson");
AddElement(pointer, "George", "Smith");
AddElement(pointer, "Oscar", "Williams");

У меня также есть другая структура:

struct Result {
Result *next;
std::string surname;
};

Я хочу скопировать все значения "фамилия" из первого списка узлов в новый список результатов только один раз для каждого значения "фамилия".

То есть, если у меня в списке связанных узлов есть такие фамилии: "Smith", "Johnson", "Smith", "Johnson", "Williams", я хочу, чтобы "Smith", "Johnson", "Williams" в мой список результатов.

Я новичок в C++, указатели и структуры. Как мне подойти к этому?

спросил(а) 2018-12-17T10:18:00+03:00 2 года, 6 месяцев назад
0
126

Вот возможный алгоритм сокращения поиска без изменения основных определений структуры:

Держите свой список структур Result, отсортированных по алфавиту. Всякий раз, когда вы проверяете фамилию, ищите в структурах Результата, пока не выполните одно из следующих действий: (1) Найдите точное совпадение и не добавляйте его (2) Найдите фамилию в алфавитном порядке после той, которую вы ищете. В этом случае добавьте новую фамилию непосредственно перед найденной вами.

Возможно, это не лучшее или единственное решение, но я предлагаю его в качестве направления.

ответил(а) 2018-12-17T14:34:00+03:00 2 года, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема