#include <iostream>
using namespace std;
struct list
{
int value;
list* next;
} ;
list* addNewElement( list* p_head, int elems)
{
if ( elems >= 1 )
{
list* p_list = new list;
cout << "Enter a value: " ;
cin >> p_list- > value;
p_list- > next = addNewElement( p_head, elems - 1 ) ;
return p_list;
}
return p_head;
}
void printList( list* p_head)
{
list* p_cur = p_head;
cout << "ELEMENTS: " << endl;
while ( p_cur ! = NULL )
{
cout << p_cur- > value;
p_cur = p_cur- > next;
}
cout << endl;
}
int main( )
{
list* p_head = NULL ;
int elemNR;
cout << "Enter how many elements do you want in the list: " ;
cin >> elemNR;
p_head = addNewElement( p_head, elemNR) ;
cout << endl;
printList( p_head) ;
cout << endl;
cout << "PRESS <ENTER> TO CONTINUE..." ;
cin .ignore ( ) ;
cin .get ( ) ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBsaXN0CnsKICAgIGludCB2YWx1ZTsKICAgIGxpc3QqIG5leHQ7Cn07CgpsaXN0KiBhZGROZXdFbGVtZW50KGxpc3QqIHBfaGVhZCwgaW50IGVsZW1zKQp7CiAgICBpZiAoZWxlbXMgPj0gMSkKICAgIHsKICAgICAgICBsaXN0KiBwX2xpc3QgPSBuZXcgbGlzdDsKCiAgICAgICAgY291dCA8PCAiRW50ZXIgYSB2YWx1ZTogIjsKICAgICAgICBjaW4gPj4gcF9saXN0LT52YWx1ZTsKCiAgICAgICAgcF9saXN0LT5uZXh0ID0gYWRkTmV3RWxlbWVudChwX2hlYWQsIGVsZW1zIC0gMSk7CiAgICAgICAgcmV0dXJuIHBfbGlzdDsKICAgIH0KICAgIHJldHVybiBwX2hlYWQ7Cn0KCnZvaWQgcHJpbnRMaXN0KGxpc3QqIHBfaGVhZCkKewogICAgbGlzdCogcF9jdXIgPSBwX2hlYWQ7CgogICAgY291dCA8PCAiRUxFTUVOVFM6ICIgPDwgZW5kbDsKCiAgICB3aGlsZSAocF9jdXIgIT0gTlVMTCkKICAgIHsKICAgICAgICBjb3V0IDw8IHBfY3VyLT52YWx1ZTsKICAgICAgICBwX2N1ciA9IHBfY3VyLT5uZXh0OwogICAgfQoKICAgIGNvdXQgPDwgZW5kbDsKfQoKaW50IG1haW4oKQp7CiAgICBsaXN0KiBwX2hlYWQgPSBOVUxMOwoKICAgIGludCBlbGVtTlI7CgogICAgY291dCA8PCAiRW50ZXIgaG93IG1hbnkgZWxlbWVudHMgZG8geW91IHdhbnQgaW4gdGhlIGxpc3Q6ICI7CiAgICBjaW4gPj4gZWxlbU5SOwoKICAgIHBfaGVhZCA9IGFkZE5ld0VsZW1lbnQocF9oZWFkLCBlbGVtTlIpOwoKICAgIGNvdXQgPDwgZW5kbDsKCiAgICBwcmludExpc3QocF9oZWFkKTsKCiAgICBjb3V0IDw8IGVuZGw7CgogICAgY291dCA8PCAiUFJFU1MgPEVOVEVSPiBUTyBDT05USU5VRS4uLiI7CgogICAgY2luLmlnbm9yZSgpOwogICAgY2luLmdldCgpOwp9