Другие языки программирования и технологии

Создать список. вывести его на экран.

Создать список. вывести его на экран. Удалить из списка все элементы с четными значениями. вывести на экран полученный список с++
#include
using namespace std;

//однонарпавленный линейный список
struct Node
{
Node* Next;
int info;
};
typedef Node *PNode; //тип данных: указатель на узел
//печать списка
void Print(PNode Head)
{
while (Head)
{
cout << Head->info << ' ';
Head = Head->Next;
}
}
//добавление узла
void Add(PNode &Head, int x)
{

if (!Head)
{
Head = new Node;
Head->info = x;
Head->Next = NULL;
}
else
{
PNode temp = Head;
PNode NewNode = new Node;
while (temp->Next) temp = temp->Next;
temp->Next = NewNode;
NewNode->info = x;
NewNode->Next = NULL;
}
}
//удаление
void Del(PNode &p, PNode &Head)
{
if (p == Head)
{
Head = p->Next;
delete p;
p = Head;
}
else
{
PNode temp=Head;
while (temp->Next != p) temp = temp->Next;
temp->Next = p->Next;
delete p;
p = temp->Next;
}

}
void main()
{
setlocale(0, "");
PNode Head = NULL;
int n;
cout << "Введите кол-во элементов: ";
cin >> n;
//создание списка
for (int i = 0; i < n; i++)
{
int x;
cout << "Введите элемент: ";
cin >> x;
Add(Head, x);
}
//печать списка
cout << endl << "Список: " << endl;
Print(Head);
//удаление элементов с четными значениями
PNode temp = Head;
while (temp)
{
if (temp->info % 2 == 0) Del(temp, Head);
else temp = temp->Next;
}
//печать списка после удаления
cout << endl << "Список: " << endl;
Print(Head);

cout << endl;
system("pause");
}
//можно еще добавить функцию очищения памяти
/*
void Clear(PNode &Head)
{
PNode temp=Head->Next;
while (temp)
{
delete Head;
Head=temp;
temp=temp->Next;
}
delete Head;
}
*/
F F
F F
451
Лучший ответ
Сергей Малов Это на С++ ?Или Паскаль?
F F С++

Похожие вопросы