L'algorithme est relativement simple. Il consiste à rechercherechercher le pointeur <code>NULL</code> dans la liste marquant sa fin. Une fois trouvé, il est modifié en allouant une nouvelle liste de 1 élément contenant <code>data</code>. La difficulté principale est l'utilisation d'un pointeur de liste (un <code>List **</code>) permettant de traiter indifférement le cas ouoù la liste d'origine est vide et le cas où elle n'est pas vide.