#include <stdio.h>
#include <stdlib.h>
struct tipo_lista{
int id;
struct tipo_lista* prox;
};
typedef struct tipo_lista tipo_lista;
tipo_lista* cria_no(int id){
tipo_lista
* ret
= malloc(sizeof(tipo_lista
)); ret->prox = NULL;
ret->id = id;
return ret;
}
tipo_lista* inserir_fim (tipo_lista * p, tipo_lista * novo_no)
{
//Se a lista estiver vazia
if(p==NULL)
return novo_no;
tipo_lista* r = p; //Para manter a referencia ao primeiro elemento
while (p->prox != NULL)
{
p = p->prox;
}
p->prox = novo_no;
return r;
}
//inicio
tipo_lista * inserir_inicio (tipo_lista * p, tipo_lista * novo_no)
{
novo_no -> prox = p;
return novo_no;
}
void print (tipo_lista *p){
while (p != NULL){
"This : ", p,
"ID : ", p->id,
"Prox : ", p->prox);
p = p->prox;
}
}
int main(){
tipo_lista *p = NULL;
print(p);
p = inserir_inicio(p,cria_no(2));
print(p);
p = inserir_fim(p, cria_no(3));
print(p);
p = inserir_inicio(p,cria_no(4));
print(p);
p = inserir_fim(p, cria_no(5));
print(p);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCgpzdHJ1Y3QgdGlwb19saXN0YXsKICBpbnQgaWQ7CiAgc3RydWN0IHRpcG9fbGlzdGEqIHByb3g7Cn07IAoKdHlwZWRlZiBzdHJ1Y3QgdGlwb19saXN0YSB0aXBvX2xpc3RhOwoKdGlwb19saXN0YSogY3JpYV9ubyhpbnQgaWQpewogIAogIHRpcG9fbGlzdGEqIHJldCA9IG1hbGxvYyhzaXplb2YodGlwb19saXN0YSkpOwogIHJldC0+cHJveCA9IE5VTEw7CiAgcmV0LT5pZCA9IGlkOwogIAogIHJldHVybiByZXQ7Cn0KCnRpcG9fbGlzdGEqIGluc2VyaXJfZmltICh0aXBvX2xpc3RhICogcCwgdGlwb19saXN0YSAqIG5vdm9fbm8pCnsKLy9TZSBhIGxpc3RhIGVzdGl2ZXIgdmF6aWEKaWYocD09TlVMTCkKICAgIHJldHVybiBub3ZvX25vOwoKdGlwb19saXN0YSogciA9IHA7IC8vUGFyYSBtYW50ZXIgYSByZWZlcmVuY2lhIGFvIHByaW1laXJvIGVsZW1lbnRvCndoaWxlIChwLT5wcm94ICE9IE5VTEwpCnsKICAgIHAgPSBwLT5wcm94Owp9CnAtPnByb3ggPSBub3ZvX25vOwogIHJldHVybiByOwp9CgovL2luaWNpbwp0aXBvX2xpc3RhICogaW5zZXJpcl9pbmljaW8gKHRpcG9fbGlzdGEgKiBwLCB0aXBvX2xpc3RhICogbm92b19ubykKewpub3ZvX25vIC0+IHByb3ggPSBwOwpyZXR1cm4gbm92b19ubzsKfQoKdm9pZCBwcmludCAodGlwb19saXN0YSAqcCl7CiAgCiAgcHV0cygiPT1CRUdJTj09XG4iKTsKICB3aGlsZSAocCAhPSBOVUxMKXsKICAgIHB1dHMoIisrKysrKysrKyIpOyAgCiAgICBwcmludGYoIiVzJXBcbiVzJWRcbiVzJXBcbiIsCiAgICAgICJUaGlzIDogIiwgcCwKICAgICAgIklEICAgOiAiLCBwLT5pZCwKICAgICAgIlByb3ggOiAiLCBwLT5wcm94KTsKICAgIHB1dHMoIi0tLS0tLS0tLSIpOyAgCiAgICBwID0gcC0+cHJveDsgIAogIH0KICBwdXRzKCI9PT1FTkQ9PT1cbiIpOwogIAp9CgoKaW50IG1haW4oKXsKICAKICB0aXBvX2xpc3RhICpwID0gTlVMTDsKICAKICBwcmludChwKTsKICAKICBwID0gaW5zZXJpcl9pbmljaW8ocCxjcmlhX25vKDIpKTsKICAKICBwcmludChwKTsKCiAgcCA9IGluc2VyaXJfZmltKHAsIGNyaWFfbm8oMykpOwogIAogIHByaW50KHApOwoKICBwID0gaW5zZXJpcl9pbmljaW8ocCxjcmlhX25vKDQpKTsKICAKICBwcmludChwKTsKCiAgcCA9IGluc2VyaXJfZmltKHAsIGNyaWFfbm8oNSkpOwogIAogIHByaW50KHApOwoKICByZXR1cm4gMDsKfQo=