Необходимо решить именно с использованием списков.
#include <fstream>
#include <iostream>
#include <locale.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
struct LIST {
int number;
LIST *next;
};
//Функция чтения данных и занесения их в создаваемый список:
LIST *read_list(LIST *lst) {
lst=0;
LIST *p=0;
int t;
ifstream f("1.txt");
// первый элемент
if (f>>t) {
lst=new LIST;
p=lst;
p->number=t;
}
// последующие элементы
while (f>>t) { //Пока не конец файла
p->next=new LIST;
p=p->next;
p->number=t;
}
// закончили создавать список
if (p) p->next=0;
return lst;
}
LIST *del_group_element(LIST *lst)
{
LIST *p=lst;
if (p==0) return lst;
do
{
int num=p->number;
LIST *prev=p;
LIST *pos=p->next;
int flag=0;
while (pos!=0)
{
if (pos->number==num)
{
LIST* tmp=pos;
pos=pos->next;
prev->next=pos;
delete tmp;
flag=1;
}
else
{
prev=pos;
pos=pos->next;
}
}
if (flag)
{
if (p==lst)
{
lst=pos;
pos=pos->next;
prev=pos;
LIST* tmp=p;
p=p->next;
delete tmp;
}
}
else
p=p->next;
} while (p!=0);
return lst;
}
int main()
{
LIST *lst=0, *p=lst;
int n;
setlocale(LC_CTYPE,"");
lst = read_list(lst);
cout << "элементы списка: \n";
p=lst;
while (p) {
//Выводим данные
cout<<' '<<p->number;
// Переходим на следующий элемент
p=p->next;
}
cout<<endl;>number;
// Переходим на следующий элемент
p=p->next;
}
cout<<endl;>
