WHy is there all this code in a display function?? It looks like your main() hase wandered in here.
I see the display funciton argument is a llist and not an llist& or llist*. That menas a copy was made when the display was called. And that menas you may have copy constructor problems. (Actually, it means you shoud have used a pointer or referecne argument).
Next, the printall() uses a magic variable named start that drops in from nowhere. I suspect a global variable. Probably the value in the global has gotten screwed up. You see, there has to be an llist that was used to make the copy for the display function argunment. That means there are at least two llist variables using the same start. Bad news. That is a race condition.
Read the C/C++ Article
http://www.thescripts.com/forum/thread736028.html.
Try to get your functions to do only one thing. I would start by renaming your display function to main() and go from there.