Those papers, as far as I can see, describe mostly abstract concepts and math. I am a software developer, so how could I practically implement said algorithms into a piece of software? Also, what algorithm is best for extracting building data with minimal vegetation interference?
Whitebox Geospatial Analysis Tools (http://www.uoguelph.ca/~hydrogeo/Whitebox/) has a tool that works with interpolated LiDAR DEMs called 'Remove Off-Terrain Objects' which is very effective at locating buildings in LiDAR. Here is the source code for that plugin. The algorithm is open-source and I have a manuscript describing it if you're interested. Here's a screenshot:
You can prefer eCognition; there are lot many algorithms to process LiDAR data. You can use combination of following features to extract buildings from LiDAR; 1. Maximum Elevation from first return (in which trees are also included) 2. Eliminate the trees by using 'maximum number of returns'. 3. Use the brightness parameter from aerial images to eliminate ground.
If you want to write the program on your own; use the above parameters to extract buildings.