#include <iostream>
#define MAX_ITEMS 10
struct node
{
int value;
node *nextNode;
};
node *front, *rear, *temp;
void populateList(void);
void delMemory(void);
void printList(void);
int main(void)
{
populateList();
printList();
delMemory();
return 0;
}
void populateList(void)
{
for (auto x = 0; x < MAX_ITEMS; x++)
{
if (!front)
{
front = new node;
(*front).nextNode = nullptr;
rear = front;
}
else
{
(*rear).nextNode = new node;
rear = (*rear).nextNode;
(*rear).nextNode = nullptr;
}
(*rear).value = x;
}
}
void printList(void)
{
auto itemsCount{0};
if (!front)
{
std::cout<<"No items in the list"<<std::endl;
}
else
{
temp = front;
while (temp)
{
std::cout<<"Node #"<<++itemsCount;
std::cout<<" Value: "<<(*temp).value<<std::endl;
temp = (*temp).nextNode;
}
}
}
void delMemory(void)
{
temp = front;
while (temp)
{
temp = (*front).nextNode;
delete front;
front = temp;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojZGVmaW5lIE1BWF9JVEVNUyAxMApzdHJ1Y3Qgbm9kZQp7CglpbnQgdmFsdWU7Cglub2RlICpuZXh0Tm9kZTsKfTsKbm9kZSAqZnJvbnQsICpyZWFyLCAqdGVtcDsKdm9pZCBwb3B1bGF0ZUxpc3Qodm9pZCk7CnZvaWQgZGVsTWVtb3J5KHZvaWQpOwp2b2lkIHByaW50TGlzdCh2b2lkKTsKaW50IG1haW4odm9pZCkKewoJcG9wdWxhdGVMaXN0KCk7CglwcmludExpc3QoKTsKCWRlbE1lbW9yeSgpOwoJcmV0dXJuIDA7Cn0Kdm9pZCBwb3B1bGF0ZUxpc3Qodm9pZCkKewoJZm9yIChhdXRvIHggPSAwOyB4IDwgTUFYX0lURU1TOyB4KyspCgl7CgkJaWYgKCFmcm9udCkKCQl7CgkJCWZyb250ID0gbmV3IG5vZGU7CgkJCSgqZnJvbnQpLm5leHROb2RlID0gbnVsbHB0cjsKCQkJcmVhciA9IGZyb250OwoJCX0KCQllbHNlCgkJewoJCQkoKnJlYXIpLm5leHROb2RlID0gbmV3IG5vZGU7CgkJCXJlYXIgPSAoKnJlYXIpLm5leHROb2RlOwoJCQkoKnJlYXIpLm5leHROb2RlID0gbnVsbHB0cjsKCQl9CgkJKCpyZWFyKS52YWx1ZSA9IHg7Cgl9Cn0Kdm9pZCBwcmludExpc3Qodm9pZCkKewoJYXV0byBpdGVtc0NvdW50ezB9OwoJaWYgKCFmcm9udCkKCXsKCQlzdGQ6OmNvdXQ8PCJObyBpdGVtcyBpbiB0aGUgbGlzdCI8PHN0ZDo6ZW5kbDsKCX0KCWVsc2UKCXsKCQl0ZW1wID0gZnJvbnQ7CgkJd2hpbGUgKHRlbXApCgkJewoJCQlzdGQ6OmNvdXQ8PCJOb2RlICMiPDwrK2l0ZW1zQ291bnQ7CgkJCXN0ZDo6Y291dDw8IiBWYWx1ZTogIjw8KCp0ZW1wKS52YWx1ZTw8c3RkOjplbmRsOwoJCQl0ZW1wID0gKCp0ZW1wKS5uZXh0Tm9kZTsKCQl9Cgl9Cn0Kdm9pZCBkZWxNZW1vcnkodm9pZCkKewoJdGVtcCA9IGZyb250OwoJd2hpbGUgKHRlbXApCgl7CgkJdGVtcCA9ICgqZnJvbnQpLm5leHROb2RlOwoJCWRlbGV0ZSBmcm9udDsKCQlmcm9udCA9IHRlbXA7Cgl9Cn0=