(С++)Помогите написать функцию (void PrintListByIndex), для поиска и вывода элемента структуры по элементу, поиск в динамичной структуре

#include <string>
#include <Windows.h>
#include <iostream>
#include <clocale>

using namespace std;

struct Jojo
{
    wstring name, genus;
    int height, age;
};

struct JojoList
{
    Jojo item;
    JojoList* nextptr = nullptr;
};

Jojo get_input_jojo()
{
    Jojo tmp;
    wstring name;
    wcout << L"Введите имя: " << '\n';
    wcin.ignore(255, '\n');
    getline(wcin, tmp.name);
    wcout << L"Введите цвет: " << '\n';
    getline(wcin, tmp.genus);
    wcout << L"Введите размер: " << '\n';
    wcin >> tmp.height;
    wcout << L"Введите возраст: " << '\n';
    wcin >> tmp.age;
    return tmp;
}

JojoList* init_list()
{
    JojoList* head = new JojoList;
    head->item = get_input_jojo();
    head->nextptr = head;
    return head;
}


void Push_back(JojoList* head, Jojo item, int &x)
{

    JojoList* start = head;
    if (head == nullptr) return;
    while (head->nextptr != start)
    {
        head = head->nextptr;
    }
    head->nextptr = new JojoList;
    head->nextptr->item=item;
    head->nextptr->nextptr=start;
    x++;
}

void output_list(JojoList* head)
{
    setlocale(LC_ALL, "rus");
    JojoList* start = head;
    if (head == nullptr) return;
    do
    {
        wcout <<"--------------------"<<endl;
        wcout <<L"Имя: "<< head->item.name<<endl;
        wcout <<L"Цвет: "<< head->item.genus<<endl;
        wcout <<L"Возраст: "<< head->item.age<<endl;
        wcout <<L"Высота: "<<head->item.height<<endl;
        wcout <<"--------------------"<<endl;
        head = head->nextptr;
    }
    while (head != start);
}

JojoList InitList() {
    JojoList list;
    return list;
}

void PrintListByIndex()
{

}

int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    setlocale(LC_ALL, "rus");
    int var,x, index;
    JojoList* head = nullptr;
    JojoList list = InitList();
    x=1;
    index=0;
    while (true)
    {
        wcout << L"1.Добавить новый элемент в список" << '\n';
        wcout << L"2.Вывести список" << '\n';
        wcout << L"3.Кол-во" << '\n';
        cin >> var;
        switch (var)
        {
        case 1:
            if (head == nullptr)
            {
                head = init_list();
            }
            else Push_back(head, get_input_jojo(), x);
            break;
        case 2:
            output_list(head);
            break;
        case 3:

            break;
        default:
            wcout << L"Простите вы ввели какое-то говно."<<endl;
            break;
        }
    }

}

Ответы (0 шт):