Ifstream in("input.Txt");
ofstream out("output.txt");
in>>x;in>>y;
while (in>>value)
{
curIndex=l.getLength();
l.insertRight(curIndex,value);
}
In.Close();
for (int i=1;i<=l.getLength();i++)
{
if (l.get(i)==x)
{l.insertLeft(i,y);
l.remove(i+1);
}
}
for (int i=1;i<=l.getLength();i++)
out<<l.get(i)<<" ";
out.close();
l.~List();
return 0;
}
_________________________________input.txt_____________________________
7 0
7 7 1 3 7 5 2 5 7 2 7 9 3 7 7
_____________________________output.txt________________________________
0 0 1 3 0 5 2 5 0 2 0 9 3 0 0
1. Дан файл, компонентами которого являются целые числа. Создать на основе данных файла упорядоченную по убыванию структуру данных без использования какого-либо алгоритма сортировки.
Идея решения заключается в следующем. Берем из файла первое число, вставляем в двусвязный список. Далее в цикле считываем числа из файла и каждое число сравниваем по очереди с числами в списке. Как только в списке встретится число меньше данного, вставляем денное число слева от него. Если же мы дошли до конца списка, и все числа оказались больше данного, то данное число вставляем справа от последнего числа.
Int main()
{List <int> l;
int value,curIndex,i=1;
Ifstream in("input.Txt");
ofstream out("output.txt");
in>>value;
curIndex=l.getLength();
l.insertRight(curIndex,value);
int k=1;
while (in>>value)
{
for (i=1;((i<k)&&(l.get(i)>value));i++);
if (i==k&&l.get(i)>value) l.insertRight(i,value);
else
l.insertLeft(i,value);
k++;
}
In.Close();
for (int i=1;i<=l.getLength();i++)
out<<l.get(i)<<" ";
out.close();
l.~List();
return 0;
}
_____________________________input.txt_________________________________
11 1 7 3 0 1 45 8 5 67 5 9 5 8 1 1 1 34
_____________________________output.txt________________________________
67 45 34 11 9 8 8 7 5 5 5 3 1 1 1 1 1 0