Ajuda com esse exercício

Desenvolva uma função em C que insira os elementos em uma lista duplamente ligada em ordem crescente, busque um elemento pela chave e apague esse elemento. Tudo em uma lista duplamente ligada. Qual a diferença entre implementar as funções para uma lista simplesmente ligada e para uma lista duplamente ligada? Quais vantagens e desvantagens você observou em cada uma?
Escreva todos os testes no main. insira os elementos na lista em ordem crescente.

Posta aí o que você já fez até agora.