#include <iostream>
#include <string>
using namespace std;
class ListItem
{
public:
string Data;
ListItem *Next;
};
class List
{
private:
ListItem *root = nullptr;
ListItem *last = nullptr;
public:
~List();
void Anhaengen(string data);
void Ausgabe();
int GetCount();
};
List::~List()
{
ListItem *helper;
while (this->root != nullptr)
{
helper = this->root;
this->root = this->root->Next;
delete(helper);
}
}
void List::Anhaengen(string data)
{
ListItem *item = new(ListItem);
item->Data = data;
item->Next = nullptr;
if(this->root == nullptr)
{
this->root = item;
this->last = item;
}
else
{
this->last->Next = item;
this->last = item;
}
}
void List::Ausgabe()
{
ListItem *helper = this->root;
while (helper != nullptr)
{
cout << helper->Data << endl;
helper = helper->Next;
}
}
int List::GetCount()
{
int count = 0;
ListItem *helper = this->root;
while (helper != nullptr)
{
helper = helper->Next;
count++;
}
return count;
}
int main() {
List list;
for(int i = 1; i < 11; i++)
list.Anhaengen("Test" + std::to_string(i));
list.Ausgabe();
cout << "Items: " << list.GetCount() << endl;
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgTGlzdEl0ZW0KewoJcHVibGljOgoJCXN0cmluZyBEYXRhOwoJCUxpc3RJdGVtICpOZXh0Owp9OwoKY2xhc3MgTGlzdAp7Cglwcml2YXRlOgoJICAgIExpc3RJdGVtICpyb290ID0gbnVsbHB0cjsKCSAgICBMaXN0SXRlbSAqbGFzdCA9IG51bGxwdHI7CgkgICAgCglwdWJsaWM6CgkgICB+TGlzdCgpOwoJICAgdm9pZCBBbmhhZW5nZW4oc3RyaW5nIGRhdGEpOwoJICAgdm9pZCBBdXNnYWJlKCk7CgkgICBpbnQgR2V0Q291bnQoKTsKCSAgIAp9OwoKTGlzdDo6fkxpc3QoKQp7CglMaXN0SXRlbSAqaGVscGVyOwogICAgd2hpbGUgKHRoaXMtPnJvb3QgIT0gbnVsbHB0cikKICAgIHsKICAgICAgICBoZWxwZXIgPSB0aGlzLT5yb290OwogICAgICAgIHRoaXMtPnJvb3QgPSB0aGlzLT5yb290LT5OZXh0OwogICAgICAgIGRlbGV0ZShoZWxwZXIpOwogICAgfQp9Cgp2b2lkIExpc3Q6OkFuaGFlbmdlbihzdHJpbmcgZGF0YSkKewoJTGlzdEl0ZW0gKml0ZW0gPSBuZXcoTGlzdEl0ZW0pOwoJaXRlbS0+RGF0YSA9IGRhdGE7CglpdGVtLT5OZXh0ID0gbnVsbHB0cjsKCWlmKHRoaXMtPnJvb3QgPT0gbnVsbHB0cikKCXsKCQl0aGlzLT5yb290ID0gaXRlbTsKCQl0aGlzLT5sYXN0ID0gaXRlbTsKCX0KCWVsc2UKCXsKCQl0aGlzLT5sYXN0LT5OZXh0ID0gaXRlbTsKCQl0aGlzLT5sYXN0ID0gaXRlbTsKCX0KfQoKdm9pZCBMaXN0OjpBdXNnYWJlKCkKewoJTGlzdEl0ZW0gKmhlbHBlciA9IHRoaXMtPnJvb3Q7CiAKICAgIHdoaWxlIChoZWxwZXIgIT0gbnVsbHB0cikKICAgIHsKICAgIAljb3V0IDw8IGhlbHBlci0+RGF0YSA8PCBlbmRsOwogICAgICAgIGhlbHBlciA9IGhlbHBlci0+TmV4dDsKICAgIH0gIAp9CgppbnQgTGlzdDo6R2V0Q291bnQoKQp7CglpbnQgY291bnQgPSAwOwoJTGlzdEl0ZW0gKmhlbHBlciA9IHRoaXMtPnJvb3Q7CgkKCXdoaWxlIChoZWxwZXIgIT0gbnVsbHB0cikKICAgIHsKICAgICAgICBoZWxwZXIgPSBoZWxwZXItPk5leHQ7CgkJY291bnQrKzsKICAgIH0gIAoJCglyZXR1cm4gY291bnQ7Cn0KCmludCBtYWluKCkgewoJCglMaXN0IGxpc3Q7CgkKCWZvcihpbnQgaSA9IDE7IGkgPCAxMTsgaSsrKQoJCWxpc3QuQW5oYWVuZ2VuKCJUZXN0IiArIHN0ZDo6dG9fc3RyaW5nKGkpKTsKCQoJbGlzdC5BdXNnYWJlKCk7Cgljb3V0IDw8ICJJdGVtczogIiA8PCBsaXN0LkdldENvdW50KCkgPDwgZW5kbDsKCgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglyZXR1cm4gMDsKfQ==