#include <iostream>
using namespace std;
template <typename Type>
struct LinkedElement {
Type content;
LinkedElement<Type> *next = NULL;
};
/*
*Tive que improvisar a função pois o código não está disponível na pergunta.
*/
template <typename Type>
LinkedElement<Type> *createLinkedElement(Type e){
LinkedElement<Type> *result = new LinkedElement<Type>(); //Aqui o operador new cria uma nova estrutura LinkedElement alocada no heap.
result->content = e;
return result;
}
LinkedElement<int> *firstElement;
void novoInt(int e){
LinkedElement<int> *newElement = createLinkedElement(e);
if (firstElement == NULL) {
firstElement = newElement;
} else {
LinkedElement<int> *lastElement = firstElement;
while (lastElement->next != NULL) {
lastElement = lastElement->next;
}
lastElement->next = newElement;
}
}
int main(){
novoInt(10);
novoInt(20);
novoInt(30);
novoInt(40);
novoInt(50);
LinkedElement<int> *current = firstElement;
do{
cout << current->content << '\n';
current = current->next;
} while(current != NULL);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVHlwZT4gCnN0cnVjdCBMaW5rZWRFbGVtZW50IHsKICAgIFR5cGUgY29udGVudDsKICAgIExpbmtlZEVsZW1lbnQ8VHlwZT4gKm5leHQgPSBOVUxMOwp9OwoKLyoKICpUaXZlIHF1ZSBpbXByb3Zpc2FyIGEgZnVuw6fDo28gcG9pcyBvIGPDs2RpZ28gbsOjbyBlc3TDoSBkaXNwb27DrXZlbCBuYSBwZXJndW50YS4KICovCnRlbXBsYXRlIDx0eXBlbmFtZSBUeXBlPiAKTGlua2VkRWxlbWVudDxUeXBlPiAqY3JlYXRlTGlua2VkRWxlbWVudChUeXBlIGUpewogIExpbmtlZEVsZW1lbnQ8VHlwZT4gKnJlc3VsdCA9IG5ldyBMaW5rZWRFbGVtZW50PFR5cGU+KCk7IC8vQXF1aSBvIG9wZXJhZG9yIG5ldyBjcmlhIHVtYSBub3ZhIGVzdHJ1dHVyYSBMaW5rZWRFbGVtZW50IGFsb2NhZGEgbm8gaGVhcC4KICByZXN1bHQtPmNvbnRlbnQgPSBlOwogIHJldHVybiByZXN1bHQ7Cn0KCkxpbmtlZEVsZW1lbnQ8aW50PiAqZmlyc3RFbGVtZW50OwoKdm9pZCBub3ZvSW50KGludCBlKXsKICBMaW5rZWRFbGVtZW50PGludD4gKm5ld0VsZW1lbnQgPSBjcmVhdGVMaW5rZWRFbGVtZW50KGUpOwogIGlmIChmaXJzdEVsZW1lbnQgPT0gTlVMTCkgewogICAgICBmaXJzdEVsZW1lbnQgPSBuZXdFbGVtZW50OwogIH0gZWxzZSB7ICAKICAgIExpbmtlZEVsZW1lbnQ8aW50PiAqbGFzdEVsZW1lbnQgPSBmaXJzdEVsZW1lbnQ7CiAgICAKICAgIHdoaWxlIChsYXN0RWxlbWVudC0+bmV4dCAhPSBOVUxMKSB7CiAgICAgICAgbGFzdEVsZW1lbnQgPSBsYXN0RWxlbWVudC0+bmV4dDsKICAgIH0KICAgIGxhc3RFbGVtZW50LT5uZXh0ID0gbmV3RWxlbWVudDsKICB9Cn0KCmludCBtYWluKCl7CiAgbm92b0ludCgxMCk7CiAgbm92b0ludCgyMCk7CiAgbm92b0ludCgzMCk7CiAgbm92b0ludCg0MCk7CiAgbm92b0ludCg1MCk7CiAgTGlua2VkRWxlbWVudDxpbnQ+ICpjdXJyZW50ID0gZmlyc3RFbGVtZW50OwogIGRvewogICAgY291dCA8PCBjdXJyZW50LT5jb250ZW50IDw8ICdcbic7CiAgICBjdXJyZW50ID0gY3VycmVudC0+bmV4dDsKICB9IHdoaWxlKGN1cnJlbnQgIT0gTlVMTCk7CiAgCn0=