вот начала, но не знаю правильно или нет:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
class fam
{public:
char *f,win,strana;
float rez,n,i;
fam *next,*tek,*first,*last;
void vivod1();
void vivod2();
void del();
Описание работы функций
friend istream & operator >> (istream&ist,gorod&obj);
Перегрузка ввода: выделение памяти под элемент списка; ввод последовательно названия города, населения и числа больных до тех пор, пока пользователь не введет в поле названия города «.». Первый элемент приобретает указатель first; после введения в поле названия города «.»; текущий элемент приобретает указатель last, при этом last->next указывает на элемент first, тем самым замыкая цепь. Каждый элемент также имеет указатель pred, который указывает на предыдущий элемент (указатель first указывает на last), таким образом создается двунаправленный список. Оператор также имеет счетчик количества городов n, который понадобится в цикле при освобождении памяти, выделенной под список.
void vivod1();
Вывод списка начиная с первого введенного элемента.
void vivod2();
Вывод списка начиная с последнего введенного элемента.
void del();
Удаление сведений обо всех спортсменах заданной страны. Указатель tek указывает на первый элемент списка, в то время как указатель first перемещается на 1 элемент вперед. Указатели pred и next соответственно также меняют значения. Далее освобождается память, занимаемая tek. Функция также используется для освобождения памяти, выделенной под весь список, только в данном случае функция заключается в цикл с числом повтором равным n.
void obr();
Функция обработки списка. Просматривается весь список и вычисляется победители, занявшие первые три места. Далее сведения о победителях, занявших три первых места, выводятся на экран.
помогите)