#include <iostream>
using namespace std;
struct node {
int value;
node *next;
};
int main() {
node *head = new node;
head->next = NULL;
node *last = NULL;
int choice, n;
cout << "Enter 1 to enqueue, 2 to dequeue, 0 to exit: ";
while(1) {
cin >> choice;
if(choice == 1) {
cout << "Enter the num: ";
cin >> n;
node *p = new node;
p->value = n;
p->next = NULL;
if(last != NULL) {
last->next = p;
last = p;
}
else {
head->next = p;
last = p;
}
}
else if(choice == 2) {
if(head->next == NULL) {
cout << "List is empty!" << endl;
}
else {
cout << "Dequeued num: " << head->next->value << endl;
head->next = head->next->next;
if(head->next == NULL) {
last = NULL;
}
}
}
else {
break;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IG5vZGUgewoJaW50IHZhbHVlOwoJbm9kZSAqbmV4dDsKfTsKCmludCBtYWluKCkgewoJbm9kZSAqaGVhZCA9IG5ldyBub2RlOwoJaGVhZC0+bmV4dCA9IE5VTEw7Cglub2RlICpsYXN0ID0gTlVMTDsKCQoJaW50IGNob2ljZSwgbjsKCWNvdXQgPDwgIkVudGVyIDEgdG8gZW5xdWV1ZSwgMiB0byBkZXF1ZXVlLCAwIHRvIGV4aXQ6ICI7Cgl3aGlsZSgxKSB7CgkJY2luID4+IGNob2ljZTsKCQlpZihjaG9pY2UgPT0gMSkgewoJCQljb3V0IDw8ICJFbnRlciB0aGUgbnVtOiAiOwoJCQljaW4gPj4gbjsKCQkJbm9kZSAqcCA9IG5ldyBub2RlOwoJCQlwLT52YWx1ZSA9IG47CgkJCXAtPm5leHQgPSBOVUxMOwoJCQlpZihsYXN0ICE9IE5VTEwpIHsKCQkJCWxhc3QtPm5leHQgPSBwOwoJCQkJbGFzdCA9IHA7CgkJCX0KCQkJZWxzZSB7CgkJCQloZWFkLT5uZXh0ID0gcDsKCQkJCWxhc3QgPSBwOwoJCQl9CgkJfQoJCWVsc2UgaWYoY2hvaWNlID09IDIpIHsKCQkJaWYoaGVhZC0+bmV4dCA9PSBOVUxMKSB7CgkJCQljb3V0IDw8ICJMaXN0IGlzIGVtcHR5ISIgPDwgZW5kbDsKCQkJfQoJCQllbHNlIHsKCQkJCWNvdXQgPDwgIkRlcXVldWVkIG51bTogIiA8PCBoZWFkLT5uZXh0LT52YWx1ZSA8PCBlbmRsOwoJCQkJaGVhZC0+bmV4dCA9IGhlYWQtPm5leHQtPm5leHQ7CgkJCQlpZihoZWFkLT5uZXh0ID09IE5VTEwpIHsKCQkJCQlsYXN0ID0gTlVMTDsKCQkJCX0KCQkJfQoJCX0KCQllbHNlIHsKCQkJYnJlYWs7CgkJfQoJfQoJcmV0dXJuIDA7Cn0=