Kod:
Kod: Zaznacz cały
#include <iostream>
#include <cstddef>
using namespace std;
class List
{
private:
int key_;
List * next;
public:
List * head;
List();
~List();
void PrintList();
void AddElementToList(int value_);
void RemoveElementFromList();
};
List::List()
{
head = nullptr;
}
List::~List()
{
while(head) RemoveElementFromList();
}
void List::PrintList()
{
List * p;
p = head;
if(p)
do
{
cout << p->key_;
p = p->next;
cout << endl;
}
while(p != head);
}
void List::AddElementToList(int value_)
{
List * p = new List;
p->key_ = value_;
if(head)
{
p->next = head->next;
head->next = p;
}
else p->next = p;
head = p;
}
void List::RemoveElementFromList()
{
if(head)
{
List * p = head->next;
head->next = p->next;
if(p->next == p) head = nullptr;
delete p;
}
}
int main()
{
List L;
int i = 1;
int j = 3;
int k = 10;
int l = 8;
int m = 2;
L.AddElementToList(i);
L.AddElementToList(j);
L.AddElementToList(k);
L.AddElementToList(l);
L.AddElementToList(m);
L.PrintList();
L.~List();
L.PrintList();
return 0;
}