I think that you ll need some dynamically changing information structures. Questions can come to screen one by one. This is one of the safest way because each answer is a turning point in your node structure and user will not be flooded with a lot of information.
There are several front-end technologies for storing that information. But let's turn our point..
Each response of user will change which question is going to be appeared to the user.
In those cases, a few tricks can be implemented.
Refer the answer of user in the next question so that user will have a sight connection with the previous question. Like in uploaded image.
Breadcrumbs (show what was the previous question?) and if user want to change an answer, he does not have to start from beginning.
Data visualization methods - (ex: http://www.visualthesaurus.com/app/view), which is a bit experimental but promising.
In mentioned example, as you can see an object can be connected with other objects with a reasoning. If you want to show possible questions, you can do it and get an answer from your user. The good thing about this node structure, user can jump on complex tree while still able to continue his voyage linear.
There are several open source lib for that purpose, one example:
http://almende.github.io/chap-links-library/js/network/examples/example08_selections.html