#include <iostream>
#include <ctime>
using namespace std;
struct num
{
int l=0;
num* p_next=nullptr;
};
void add (int size, num*& head)
{
for (int i = 0; i<size; i++)
{
num* newnode = new num;
newnode->l = rand()%100;
newnode->p_next = head;
head = newnode;
}
}
int extract (num*& head)
{
int n;
n = head->l;
num* tmp = head;
head = head->p_next;
delete tmp;
return n;
}
void print (num*& head)
{
while (head != nullptr)
cout << extract(head) << endl;
}
int main ()
{
srand (time(0));
num* head = nullptr;
add (10, head);
print (head);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3RpbWU+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgbnVtCnsKICAgaW50IGw9MDsKICAgbnVtKiBwX25leHQ9bnVsbHB0cjsKfTsKCnZvaWQgYWRkIChpbnQgc2l6ZSwgbnVtKiYgaGVhZCkgCnsKICAgIGZvciAoaW50IGkgPSAwOyBpPHNpemU7IGkrKykgCiAgICB7CiAgICAgICBudW0qIG5ld25vZGUgPSBuZXcgbnVtOwogICAgICAgbmV3bm9kZS0+bCA9IHJhbmQoKSUxMDA7CiAgICAgICBuZXdub2RlLT5wX25leHQgPSBoZWFkOwogICAgICAgaGVhZCA9IG5ld25vZGU7CiAgICB9Cn0KCmludCBleHRyYWN0IChudW0qJiBoZWFkKQp7CiAgICBpbnQgbjsKICAgIG4gPSBoZWFkLT5sOwogICAgbnVtKiB0bXAgPSBoZWFkOwogICAgaGVhZCA9IGhlYWQtPnBfbmV4dDsKICAgIGRlbGV0ZSB0bXA7CiAgICByZXR1cm4gbjsKfQoKdm9pZCBwcmludCAobnVtKiYgaGVhZCkgCnsgCiAgIHdoaWxlIChoZWFkICE9IG51bGxwdHIpCiAgICAgICAgY291dCA8PCBleHRyYWN0KGhlYWQpIDw8IGVuZGw7Cn0KCmludCBtYWluICgpIAp7CglzcmFuZCAodGltZSgwKSk7CiAgICBudW0qIGhlYWQgPSBudWxscHRyOwogICAgYWRkICgxMCwgaGVhZCk7CiAgICBwcmludCAoaGVhZCk7Cn0=